gpt4 book ai didi

h2 - 无法浏览 H2 数据库文件?

转载 作者:行者123 更新时间:2023-12-04 18:45:07 29 4
gpt4 key购买 nike

我正在我的单元测试中创建一个 H2 数据库。数据库使用以下属性:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
destroy-method="close">
<property name="driverClassName" value="org.h2.Driver"/>
<property name="url" value="jdbc:h2:file:target/db/testdb"/>
<property name="username" value="sa"/>
<property name="password" value=""/>
</bean>

我正在使用 com.h2database.h2 的 1.3.166 版jar 文件。

当我运行测试时,我看到在 target/db 中创建的数据库目录,和一个 testdb.h2.db文件已存在。我的测试运行并从数据库加载数据。我可以打开 target/db/testdb.h2.db文件并查看我用于创建数据库的 SQL 语句。

但是,当我尝试加载 target/db/testsb.h2.db 时文件导入数据库浏览工具(例如 DBVisualizer),我看不到任何表或数据。对于 DBVisualizer,我指定了 H2(Embedded) 模式。

我也试过 H2 控制台,但是 show tables命令返回一个空的结果集。

我看不出我做错了什么:数据库文件存在,测试正确运行,但我无法在数据库浏览器中打开这个文件。

有什么建议?

最佳答案

最有可能的问题是您使用的数据库 URL。

jdbc:h2:file:target/db/testdb

这意味着数据库文件存储在 相对于当前工作目录 .所以这取决于你从哪里开始应用程序。如果您在不同的目录中启动 DBVisualizer(很可能是这样做的),那么它会在不同的目录中创建一个新数据库。

为确保您使用相同的数据库,我建议使用绝对目录名称,或相对于当前用户主目录,如 H2 文档中所述:
jdbc:h2:~/relative/to/user/home/dir/testdb
jdbc:h2:/absolute/path/testdb

前缀 file:是可选的。

关于h2 - 无法浏览 H2 数据库文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16058100/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com