JSP ORACLE table 创建错误

JSP with ORACLE table creation error

我正在开发一个基于 JSP web 的应用程序,它应该与 OJDBC 一起工作。 这里 TABLE 名称将由用户在 FORM 中提供,table 创建将通过与 OJDBC 链接的 .jsp 文件进行处理。 但是我在 CREATETB.jsp

上收到以下错误

输入异常报告

消息处理 JSP 页 /createdb.jsp 第 12 行时发生异常

说明服务器遇到内部错误,无法完成此请求。 org.apache.jasper.JasperException: 处理 JSP 页 /createtb.jsp 第 12 行时发生异常

Statement st= con.createStatement(); 
ResultSet rs;
rs = st.executeQuery("CREATE TABLE " + TbName  //LINE NO 12
+ "("
+ "A_IDD SMALLINT PRIMARY KEY,"
+ "A_LASTT VARCHAR(25),"

我的index.jsp

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Example</title>
    </head>
    <body>
        <form method="post" action="createdb.jsp">
            <center>
            <table border="1" width="30%" cellpadding="3">
                <thead>
                    <tr>
                        <th colspan="2">Create Table Here</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>NEW TABLE NAME</td>
                        <td><input type="text" name="TbName"/></td>
                    </tr>
                    <tr>

                      <td><input type="reset" value="Reset" /></td>
                      <td><input type="submit" value="Create" /></td>
                    </tr>
                </tbody>
            </table>
            </center>
        </form>
    </body>
</html>

createtb.jsp

<%@ page import ="java.sql.*" %>
<%@ page import ="java.sql.Connection" %>
<%@ page import ="java.sql.DriverManager" %>
<%
    String TbName = request.getParameter("TbName");
    Class.forName("oracle.jdbc.OracleDriver");
    Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl",
            "paku", "paku");

    Statement st= con.createStatement(); 
    ResultSet rs;
    rs = st.executeQuery("CREATE TABLE " + TbName
            + "("
            + "A_IDD SMALLINT PRIMARY KEY,"
            + "A_LASTT VARCHAR(25),"
            + "A_FF VARCHAR(20)"
            + ");");
    if (rs.next()) {
        out.println("TABLE CREATED ");
    } else {
        out.println("ERROR");
    }

%>

看看:enter link description here 要创建 table,您不能使用:

Statement st= con.createStatement(); 
ResultSet rs;
rs = st.executeQuery(sql);

因为这是 select 查询。 你宁愿使用:

stmt = conn.createStatement();
String sql = "CREATE TABLE "+table_name+" (...)"; 
stmt.executeUpdate(sql);

希望对您有所帮助