mysql8之后进行工程逆向查询出多余的表问题

最近换了mysql8,进行工程逆向。结果出现空指针异常。

原本逆向工程是亲测可用的。怎么更换了mysql8之后就出现问题了呢。

本着科学的态度,经过一番查找,发现在逆向时getTables查询出的表名,要比我创建的表多出来一个【clients】。其实不止多这一个表,是把所有库的表都查询出来了。导致进行逆向时,出现空指针异常。

然后到网上一顿扒,发现是因为使用的是mysql8的驱动包所导致的,mysql8的驱动包中,将nullcatalogmeanscurrent设定的默认值由true修改成了false。如果使用默认的databasemetadata.gettables方法,则默认查询所有库的表,而不是datasource指定的库的表。

解决方式,就是在初始化数据库链接时将nullcatalogmeanscurrent设定为true。

1:以hikaricp为例:

java config:

hikariconfig config = new hikariconfig();
...
config.adddatasourceproperty("nullcatalogmeanscurrent", true);

spring boot 配置:

pring.datasource.hikari.data-source-properties.nullcatalogmeanscurrent=true

2:如果使用的是jdbc的连接方式,需要在链接的url后面添加此参数。

url=jdbc:mysql://localhost:3306/demo?nullCatalogMeansCurrent=true
uname=root
pwd=root
driver=com.mysql.cj.jdbc.Driver

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值