【问题标题】:Not able to access the tables from H2 database using Java无法使用 Java 从 H2 数据库访问表
【发布时间】:2013-07-14 10:38:34
【问题描述】:

我使用 H2 数据库创建了一个用于数据库测试的脚本。我面临问题,无法读取数据库中的表。它抛出消息“找不到表”和下面的代码。但它可以连接数据库。

配置:用于数据库引擎的 h2-3.3.jar 和 h2.jar

Class.forName("org.h2.Driver"); 
Connection con=DriverManager.getConnection("jdbc:h2:file:C:\\keymanager\\etc\\H2/kms;CIPHER=AES","km_user","87654321 12345678");
System.out.println(con.getCatalog());
Statement statement = con.createStatement(); 
ResultSet resultSet1 = con.createStatement().executeQuery("SELECT * FROM KM_AUDITLOGS");
while(resultSet1.next()){
  System.out.println("CREATEDATE:" +resultSet1.getString("USERIP"));
}

执行脚本后出现错误提示

"org.h2.jdbc.JdbcSQLException: 未找到表 KM_AUDITLOGS;SQL 语句: 从 KM_AUDITLOGS [42102-73] 中选择 *"

谁能帮帮我?

【问题讨论】:

  • 请向我们展示相关表格的CREATE TABLE 声明。
  • 您使用的是非常旧的 H2 版本,2008 年的 1.0.73 版本。我建议升级到更新的版本(内部版本号包含在错误代码中)。
  • 连接到数据库将始终有效:如果数据库尚不存在,则会创建一个新的空数据库。这大概就是发生了什么。要自动创建新数据库,请将;ifexists=true 附加到数据库 URL。
  • 以上安装的h2-3.3.jar文件是最新的
  • 我不知道你在哪里有一个名为h2-3.3.jar的文件,但绝对不是来自H2网站。此外,错误代码 [42102-73] 明确表示您使用的是 2008 年的 1.0.73 版本。

标签: h2 database-testing


【解决方案1】:

当使用最新版本的 H2 时,它正在工作(根据最后的评论)。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 2012-08-17
    • 2014-11-06
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多