相关疑难解决方法(0)

h2(嵌入模式)数据库文件问题

我的src目录(Java,Eclipse)中有一个h2-database文件:h2test.db

问题:

  • 从命令行启动h2.jar(以及端口8082上的h2浏览器界面),我在h2test.db中创建了2个表'test1'和'test2',我在其中放了一些数据;

  • 当试图从java代码(JDBC)访问它们时,它会抛出"table not found exception".java代码中的"show tables"显示了一个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();
Run Code Online (Sandbox Code Playgroud)

此结果集有0行(没有表),而不是显示2个表.

H2控制台 - 浏览器界面设置:

Settings: Generic h2(embedded)
driver class: org.h2.Driver
JDBC URL: jdbc:h2:../../workspace/project_name/src/db/h2test.db
user name: aeter
password: aeter 

EDIT2:我将数据库复制到一个新文件夹.现在,新文件夹中的db文件显示为'newtest'表(来自java代码)和'test1'和'test2'表(来自控制台 - 浏览器h2接口) - 与旧数据库完全相同文件显示.因此,db文件的副本仍然存在问题.

java h2

15
推荐指数
1
解决办法
3万
查看次数

标签 统计

h2 ×1

java ×1