【发布时间】: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