标签:8.0 generator 实体 nullCatalogMeansCurrent 版本 MySQL mybatis 驱动 true
https://zhuanlan.zhihu.com/p/394327034
https://www.jb51.net/article/152187.htm
在构造文件中,这里是generatorConfig.xml添加连接数据库参数 nullCatalogMeansCurrent=true
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://127.0.0.1:3309/db_test"
userId="root"
password="123456">
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
或者
"jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai&generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&nullCatalogMeansCurrent=true";
可以在数据库连接地址后面加上
nullCatalogMeansCurrent=true
本文主要介绍的是关于Mysql8.0驱动getTables返回所有库的表的相关内容,MySQL Connector/J 8.0版本驱动向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+版本MySQL,都可以升级成8.0版本驱动。
如果你是使用的5.X版本驱动,需要将Driver Class换成: com.mysql.cj.jdbc.Driver
需要注意的是:
8.0版本驱动DataSource相关的参数有变化:
比如8.0版本驱动将参数 nullCatalogMeansCurrent 的默认值由true改为了false,如果你使用DatabaseMetaData.getTables
获取所有的表信息,8.0版本驱动将返回所有库的表。
1 2 |
// 默认会返回所有库的表,而不仅是datasource指定的库
databaseMetaData.getTables( null , null , null , new String[]{ "TABLE" })
|
解决方案就是在连接池初始化时,将这个参数改为true,以HikariCP为例:
Java Config:
1 2 3 |
HikariConfig config = new HikariConfig();
...
config.addDataSourceProperty( "nullCatalogMeansCurrent" , true );
|
Spring Boot 配置:
1 |
spring.datasource.hikari.data-source-properties.nullCatalogMeansCurrent= true
|
标签:8.0,generator,实体,nullCatalogMeansCurrent,版本,MySQL,mybatis,驱动,true 来源: https://www.cnblogs.com/zhoading/p/16304207.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。