SpringBoot集成H2数据库遇到的坑

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:\User\administrator下创建一个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

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值