重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
這篇“SpringBoot怎么集成Druid連接MySQL8.0.11”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“SpringBoot怎么集成Druid連接MySQL8.0.11”文章吧。
創新互聯長期為上千多家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為河口企業提供專業的網站制作、成都網站制作,河口網站改版等技術服務。擁有10余年豐富建站經驗和眾多成功案例,為您定制開發。
依賴管理我們可以使用maven或者gradle
MySQL Connector/J版本選擇:
注意:如果是MySQL5.X系列的話,使用8.0.X的驅動會有兼容性問題出現,請留意!
mysql mysql-connector-java 8.0.11
gradle
// https://mvnrepository.com/artifact/mysql/mysql-connector-java compile group: "mysql", name: "mysql-connector-java", version: "8.0.11"
maven
com.alibaba druid 1.1.10
####gradle
// https://mvnrepository.com/artifact/com.alibaba/druid compile group: "com.alibaba", name: "druid", version: "1.1.10"
這里我們使用Java Config。我在使用YAML配置的時候,發現代碼提示不完整,這大大增加了出錯的可能性,所以推薦使用Java Config。
@Configuration public class Config { @Bean public DruidDataSource druidDataSource() { //Druid 數據源配置 DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/work?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"); dataSource.setUsername("webuser"); dataSource.setPassword("123456"); //初始連接數(默認值0) dataSource.setInitialSize(8); //最小連接數(默認值0) dataSource.setMinIdle(8); //最大連接數(默認值8,注意"maxIdle"這個屬性已經棄用) dataSource.setMaxActive(32); return dataSource; } }
部分注釋寫在代碼里面了,這里說兩個注意事項
一個是DriverClassName
8.0.11驅動(應該是8版本開始),棄用了原來的方法,我們直接去看源碼也能找到。
com.mysql.jdbc.Driver里面有兩句話
Loading class `com.mysql.jdbc.Driver". This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver"
The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
意思是加載類“com.mysql.jdbc.Driver”。 這已被棄用。 新的驅動程序類是`com.mysql.cj.jdbc.Driver" 所以注意一個屬性的設置“setDriverClassName” 另一個注意事項是URL的設置,有4個參數需要注意一下
characterEncoding=utf8 (字符編碼)
useSSL=false (發現是8版本開始才需要添加,5.X印象中不需要,添加這個參數可能和MySQL的SSL連接設置有關系)
serverTimezone=UTC (當連接數據庫時候,出現Time Zone錯誤時添加此參數,我貌似是使用Druid連接池時才出現的這個問題)
allowPublicKeyRetrieval=true (使用root賬戶登陸沒問題,使用普通賬戶會提示Public Key Retrieval錯誤)
更多配置,請參考Druid項目中的wiki,根據需求進行配置
以上就是關于“SpringBoot怎么集成Druid連接MySQL8.0.11”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注創新互聯行業資訊頻道。