最近在尝试使用SpringBoot + JPA +H2 数据库,在application.properties中,做了数据库连接配置
spring.datasource.url=jdbc:h2:tcp://localhost/D:/H2DataBase/DB/test;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE
但是在启动了程序后,控制台输出连接到了内存模式,输出结果如下:
Starting embedded database: url='jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'
请问为什么会出现这种情况,是否数据库连接URL有误?如何解决?谢谢大家了。
1 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
因为你用了tcp模式并且加了auto_server=true参数,所以springboot自动以mem模式启动了h2,但这不是h2常用的的模式,h2是嵌入式数据库,通常应该用file或mem模式,所以jdbc的url,应该是:
spring.datasource.url=jdbc:h2:file:yourdbname
某些书或网站推荐使用mem模式,而我认为file模式更好,这样开发调试时保存的数据才能在重启应用后得以保留,并且file模式也很稳定,没有什么问题。只是要记住生产环境绝不可使用h2,h2仅应该用于开发。
添加回答
举报
0/150
提交
取消