概述
SpringBoot集成H2数据库遇到的坑
最近公司的一个任务是做一个数据摆渡的功能,从mysql拿数据封装成JSON格式发送POST请求,因为mysql是别人平台上的,随时会有数据新增,所以我这边的代码得标记出上次处理到哪一条ID(自增)了,于是想到了使用H2数据库,做一个持久化,结果碰到两个坑搞了一天,在这里记录一下。
SpringBoot配置H2的时候,在application.yml里面配置的数据源,我原来是这么配的
h2:
driver-class-name: org.h2.Driver
url: jdbc:h2:~/test
username: root
password: 123456
直接说错误吧,这样配之后在第一次连接数据库的时候会在C:Useradministrator下创建一个test存放数据库,并没有创建到项目中!这会导致你打包代码后如果再次运行项目会找不到数据源,需要再次进入控制台才会创建。按照下面的url就能生成到resources下了。
h2:
driver-class-name: org.h2.Driver
url: jdbc:h2:file:./src/main/resources/db/IdConfigDB
username: root
password: 123456
这样打包的时候也能一起把你创建好的h2打包过去。
我这里打包使用了插件打包,所以打包完后的目录是这样子的。
用上面的方法创建的h2就在config里面
但是这里还有一个坑,那就是如果你启动打包后的程序,application.yml不改h2的url的话会导致启动的程序依然找不到数据库在哪,这是因为文件夹已经变更了,这边需要手动进application.yml把路径改对,就像这样
h2:
driver-class-name: org.h2.Driver
url: jdbc:h2:file:../config/db/IdConfigDB
username: root
password: 123456
因为我的程序是在bin里启动的,所以要先配到上级目录找config。
这样才能保证你打包后的程序跟idea里面打的程序用的数据库是一个,就这么简单…我卡了一天 吐了
第一次写博客 如有错误请包含 XD
最后
以上就是深情烤鸡为你收集整理的SpringBoot集成H2数据库遇到的坑的全部内容,希望文章能够帮你解决SpringBoot集成H2数据库遇到的坑所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复