前言
本文主要介紹的是關(guān)于Mysql8.0驅(qū)動getTables返回所有庫的表的相關(guān)內(nèi)容,MySQL Connector/J 8.0版本驅(qū)動向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+版本MySQL,都可以升級成8.0版本驅(qū)動。
如果你是使用的5.X版本驅(qū)動,需要將Driver Class換成: com.mysql.cj.jdbc.Driver
需要注意的是:
8.0版本驅(qū)動DataSource相關(guān)的參數(shù)有變化:
比如8.0版本驅(qū)動將參數(shù) nullCatalogMeansCurrent 的默認值由true改為了false,如果你使用DatabaseMetaData.getTables
獲取所有的表信息,8.0版本驅(qū)動將返回所有庫的表。
// 默認會返回所有庫的表,而不僅是datasource指定的庫
databaseMetaData.getTables(null, null, null, new String[]{"TABLE"})
解決方案就是在連接池初始化時,將這個參數(shù)改為true,以HikariCP為例:
Java Config:
HikariConfig config = new HikariConfig();
...
config.addDataSourceProperty("nullCatalogMeansCurrent", true);
Spring Boot 配置:
spring.datasource.hikari.data-source-properties.nullCatalogMeansCurrent=true
其他參數(shù)變化請參考[官方文檔]
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
您可能感興趣的文章:- 淺析mysql.data.dll驅(qū)動各版本介紹
- 詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動遇到的問題