H2数据库存储在哪里?

Posted

技术标签:

【中文标题】H2数据库存储在哪里?【英文标题】:Where is the H2 database stored? 【发布时间】:2015-02-16 16:17:44 【问题描述】:

我正在尝试将H2 数据库与Java 一起使用。我似乎无法找出数据写入的位置。

我提供的数据库 URL 是:jdbc:h2:/db/bh

我正在使用Java 连接数据库,如下所示:dbObj.setDBConnection(DriverManager.getConnection(hObj.getDBUrl(), hObj.getDBUsername(), hObj.getDBPassword())); 上面给出了 DB URL。 用户名:sa 密码:(空)。

我正在以下文件夹中运行jarC:\work\sampleH2\sampleH2.jar

我对H2的FAQ部分的理解是说数据库bh会在文件夹sampleH2的文件夹db/中找到。但事实并非如此。我在哪里可以找到它?

【问题讨论】:

默认情况下,h2 在内存中运行。 没有“默认”,JDBC url 决定它是在磁盘上创建还是在内存中创建。根据该 url (/db/bh) 中的路径判断,它将在 Windows 系统上的 c:\db\bh 中创建。 @Gimby:感谢您的回复。你是对的。如何确保 db 存储在我运行 jar 的路径的 db 文件夹中:C:\work\sampleH2\db\bh? 【参考方案1】:

根据http://www.h2database.com/html/cheatSheet.html有区别存放在:

相对路径(当前目录下的某处):jdbc:h2:test 绝对路径(在根目录下):jdbc:h2:/data/test

所以我会在您指定的路径下的主驱动器(可能是 c:) 上查找它

【讨论】:

感谢您的回复。我尝试将 url 更改为“db/bh”,但没有效果。 另外,在您链接到的文档中,当前工作目录被指定为“当前(!)工作目录”。为什么是感叹号?以及如何识别当前工作目录? 我猜它是您的 java 应用程序的当前工作目录。更多详情:en.wikipedia.org/wiki/Working_directory 和 ***.com/questions/4871051/…

以上是关于H2数据库存储在哪里?的主要内容,如果未能解决你的问题,请参考以下文章

在 H2 数据库中编写复杂的存储过程

将图片存储在H2数据库spring boot thymeleaf中

如何在 H2 数据库中存储表单数据(目前使用 POSTman,但不能使用网站表单)

在H2数据库的嵌套集中创建存储过程添加节点

h2 持久存储:未找到数据库

H2 数据存储非常慢? (不是真的!见编辑)