浅忆博客

  • 学无止境
  • 技术相关
浅忆
~
  1. 首页
  2. 正文

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

2021年3月28日 912点热度 0人点赞 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

标签: 暂无
最后更新:2021年4月7日

浅忆

时间还是一样的时间,不紧不慢地流走着,或许还会带走些什么,也会留下些什么,一切都按着原有的轨迹有序地进行。

点赞

文章评论

取消回复

COPYRIGHT © 2022 浅忆博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang