• 本站域名更换为 qyi.io

H2 数据库配置DATABASE_TO_UPPER区分大小写无效

Java admin 3周前 (03-27) 110次浏览 0个评论
文章目录[隐藏]

刚接触这个h2内存数据库,被这个问题折腾2天了,我使用的是mybatis-plus,而H2默认 表名、列名都是大写,和mybatis plus默认的策略有冲突(SQL大写变小写加下划线),虽然可以配置关闭掉,但全部大写还是看着不习惯......

所以百度搜了下关闭的方法,在url链接上加上 DATABASE_TO_UPPER=FALSE 就行了,但这问题就来了,由于我加了 AUTO_SERVER=TRUE  也就是混合模式,在idea中修改数据就会

报错:

[90079][90079] org.h2.jdbc.JdbcSQLSyntaxErrorException: Schema "information_schema" not found; SQL statement:
select catalog_name from information_schema.catalogs [90079-200].
Schema "information_schema" not found; SQL statement:
select catalog_name from information_schema.catalogs [90079-200]
(458 ms)

解决办法

后面搜索到 github同样有人遇到了这个问题,给出的解决方法是使用 DATABASE_TO_LOWER=TRUE 参数。记得删除原来的库重新生成

我的配置如下:

spring.datasource.url=jdbc:h2:./db/qq_bot;DATABASE_TO_LOWER=TRUE;AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9092;USER=sa;PASSWORD=sa;
#spring.datasource.h2.username=admin
#spring.datasource.h2.password=admin
spring.datasource.h2.driver-class-name=org.h2.Driver

至于我为啥把用户名密码配置在url里.......

 

使用H2需要注意的问题

1、如果修改了url配置,原来的数据库要删除重新生成,因为在第一次创建数据库的时候就写死了,无法修改。

2、关于混合模式,我一直以为配置了,AUTO_SERVER=TRUE;AUTO_SERVER_PORT=9092; 就可以使用tcp直接连接进行修改了,虽然端口开放了但会说密码错误其实只是可以使用相同的url再次连接而已。

参考文章:

https://github.com/h2database/h2database/issues/485


版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:H2 数据库配置DATABASE_TO_UPPER区分大小写无效
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址