【问题标题】:multiple tables creation at runtime在运行时创建多个表
【发布时间】:2013-08-28 11:48:40
【问题描述】:

我需要使用java和HSQL创建一个独立的数据库应用程序,应用程序的构造函数创建数据库和2个表。我写了以下内容:

        Connection connection =DriverManager.getConnection(
        jdbc:hsqldb:file:D:\\prod  \\prod,"SA","");
        Statement statement1=connection.createStatement(
        ResultSet.TYPE_SCROLL_INSENSITIVE,
        ResultSet.CONCUR_READ_ONLY);
        statement1.executeQuery(query1);
        statement1.close();
        Statement statement2=connection.createStatement(
        ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 
        statement2.executeQuery(query2);
        statement2.close();
        connection.close();

在运行应用程序后,只执行了第一条语句并创建了一个表,没有任何 SQL 异常。任何帮助......最好的 ergards

【问题讨论】:

  • query1query2 里面是什么?
  • String query1="CREATE TABLE table1(date Date NOT NULL PRIMARY KEY, field_A DOUBLE NOT NULL,field_B DOUBLE NOT NULL)";
  • String query2="CREATE TABLE table2(date Date NOT NULL PRIMARY KEY, field_C DOUBLE NOT NULL,field_D DOUBLE NOT NULL)";
  • 出于好奇,您的完整代码并未包含在内,如果您正在创建表格,为什么需要ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);?并在您的 try .. catch..finally 块的 finally 块中关闭连接和语句。

标签: jdbc hsqldb


【解决方案1】:

您不应将executeQuery(text) 用于 CREATE TABLE 和其他数据定义语句。

请改用executeUpdate(text)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2015-09-10
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    相关资源
    最近更新 更多