我的 src 目录(Java、Eclipse)中有一个 h2-database 文件:h2test.db
问题:
从命令行启动 h2.jar(以及端口 8082 上的 h2 浏览器界面),我在 h2test.db 中创建了 2 个表,“test1”和“test2”,并在其中放入了一些数据;
当尝试从 java 代码 (JDBC) 访问它们时,它会抛出“找不到表异常”。Java 代码中的“显示表”显示了一个包含 0 行的结果集。
另外,当从java代码(CREATE TABLE ...等)创建一个新表('newtest')时,之后启动h2.jar浏览器界面时我看不到它;只显示了另外两个表('test1' 和 'test2')(但随后可以从 java 代码访问新创建的表 'newtest')。
我对嵌入式数据库缺乏经验;我相信我在这里做的事情根本上是错误的。我的假设是,我正在访问同一个文件——一次来自 java 应用程序,一次来自 h2 控制台浏览器界面。我似乎无法理解,我在这里做错了什么?
编辑:根据要求,添加一些代码:
Java代码:
Class.forName("org.h2.Driver");
String url = "jdbc:h2:" + "db/h2test.db";
String user = "aeter";
String password = "aeter";
Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement ps2 = conn.prepareStatement("Show tables;");
ResultSet rs = ps2.executeQuery();
这个结果集有 0 行(没有表),而不是向我显示 2 个表。
H2 Console-浏览器界面设置:
设置:通用 h2(嵌入式) 驱动类:org.h2.Driver JDBC URL:jdbc:h2:../../workspace/project_name/src/db/h2test.db 用户名:aeter 密码:aeter
EDIT2:我将数据库复制到一个新文件夹。现在,新文件夹中的 db 文件与“newtest”表(来自 java 代码)以及“test1”和“test2”表(来自控制台浏览器 h2 界面)一起显示 - 与旧 db 完全相同文件显示。所以问题仍然存在于 db 文件的副本中。