關(guān)于Mysql8.0版本驅(qū)動(dòng)getTables返回所有庫(kù)的表問(wèn)題淺析
本文主要介紹的是關(guān)于Mysql8.0驅(qū)動(dòng)getTables返回所有庫(kù)的表的相關(guān)內(nèi)容,MySQL Connector/J 8.0版本驅(qū)動(dòng)向下兼容之前的5.5+版本MySQL,如果你使用的是5.5+版本MySQL,都可以升級(jí)成8.0版本驅(qū)動(dòng)。
如果你是使用的5.X版本驅(qū)動(dòng),需要將Driver Class換成: com.mysql.cj.jdbc.Driver
需要注意的是:
8.0版本驅(qū)動(dòng)DataSource相關(guān)的參數(shù)有變化:
比如8.0版本驅(qū)動(dòng)將參數(shù) nullCatalogMeansCurrent 的默認(rèn)值由true改為了false,如果你使用DatabaseMetaData.getTables
獲取所有的表信息,8.0版本驅(qū)動(dòng)將返回所有庫(kù)的表。
// 默認(rèn)會(huì)返回所有庫(kù)的表,而不僅是datasource指定的庫(kù) databaseMetaData.getTables(null, null, null, new String[]{"TABLE"})
解決方案就是在連接池初始化時(shí),將這個(gè)參數(shù)改為true,以HikariCP為例:
Java Config:
HikariConfig config = new HikariConfig(); ... config.addDataSourceProperty("nullCatalogMeansCurre
Spring Boot 配置:
spring.datasource.hikari.data-source-properties.nullCatalogMeansCurrent=true
其他參數(shù)變化請(qǐng)參考[官方文檔]
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)本站的支持。
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。