如何在JSP中的PostgreSQL中创建表?

时间:2018-07-31 14:41:35

标签: java postgresql jsp

我正在尝试使用JSP中的代码在Postgres中创建一个表。这是我用来制作表格的代码:

try {
    //establishes connection
    Class.forName("org.postgresql.Driver");
    con = DriverManager.getConnection ("jdbc:postgresql://192.168.1.235:5432/postgres", "postgres", "password");

    //creates table
    ps = con.prepareStatement("CREATE TABLE ?("
            + " ? serial PRIMARY KEY,"
            + " ? varchar (50) NOT NULL,"
            + " ? varchar (25) NOT NULL,"
            + " ? varchar (25) NOT NULL"
            + ");");
    ps.setString(1, title);
    ps.setString(2, idname);
    ps.setString(3, col1);
    ps.setString(4, col2);
    ps.setString(5, col3);
    System.out.println(ps);
    //executes query
    ps.executeUpdate();

} catch (Exception e) {
    e.printStackTrace();
}

我可以打印该对帐单,但它与''一起出现在我输入的所有内容中。例如:

CREATE TABLE 'table_name'( 'idname' serial PRIMARY KEY, 'col1' varchar (50) NOT NULL, 'col2' varchar (25) NOT NULL, 'col3' varchar (25) NOT NULL)

我知道我需要除去单引号,所以我用单引号将问号引起来并得到以下错误:

org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
    at org.postgresql.core.v3.SimpleParameterList.bind(SimpleParameterList.java:56)
    at org.postgresql.core.v3.SimpleParameterList.setStringParameter(SimpleParameterList.java:118)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.bindString(AbstractJdbc2Statement.java:2310)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1398)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.setString(AbstractJdbc2Statement.java:1384)
    at org.apache.jsp.Pages.CreateTable_jsp._jspService(CreateTable_jsp.java:153)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:444)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:386)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:330)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:491)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:668)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1388)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

这时我碰壁了,不知道该怎么办。

0 个答案:

没有答案