h2 数据库的 jdbc 连接字符串是什么?

What is the jdbc connection string for h2 database?

我正在尝试连接到本地计算机上的 h2 数据库以创建 sql DataSource 对象。我是 运行 windows,在我的项目 app.properties 文件中定义数据文件的路径时遇到了一些问题。

说本地目录数据文件的路径是:

D:\projects\myproject\data\project

如何为此定义连接 url?

我尝试了很多方法,包括以下内容:

project.db.url = jdbc:h2:tcp://localhost\\D:\projects\myproject\data\project

然后我想也许是 JDBC URL 的问题,所以我尝试了:

project.db.url = jdbc:h2:tcp:\\localhost\\D:\projects\myproject\data\project

根据 documentation,默认 JDBC 连接字符串为

jdbc:h2:~/test  

并且,对于 TCP 连接

jdbc:h2:tcp://localhost/~/test  

==更新==

但是,如果您想 create/read h2 数据库 to/from 特定文件夹,那么它应该是

 jdbc:h2:tcp://localhost/<path_to_database>

也就是说,

jdbc:h2:tcp://localhost/D:/myproject/data/project-name

感谢@Sam 分享信息。

application.properties 更改为以下内容:

spring.jpa.open-in-view=true

spring.datasource.url=jdbc:h2:mem:testdb

spring.datasource.driverClassName=org.h2.Driver

spring.datasource.username=sa

spring.datasource.password=

将 H2 控制台设置为以下内容:

jdbc:h2:mem:testdb

如果您正在使用 Spring 引导并且不想更改默认名称,您可以查看此日志语句并从那里复制 JDBC 连接信息:

2021-08-31 20:27:13.295  INFO 12032 --- [  restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration    : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:4c0a3d2c-9aab-4c06-ab22-da777660ab4a'

所以在这个例子中连接字符串是“jdbc:h2:mem:4c0a3d2c-9aab-4c06-ab22-da777660ab4a