SpringBoot集成Druid連接池連接MySQL8.0.11
這篇博客簡單介紹spring boot集成druid連接池的簡單配置和注意事項(xiàng)
本次使用的是MySQL8.0.11版本
前提:一個已經(jīng)搭建好的Spring Boot項(xiàng)目和可以使用的數(shù)據(jù)庫
注意:MySQL8.0.X的配置和5.7.X有小差異,整體思路完全一樣
1.配置依賴
依賴管理我們可以使用maven或者gradle
MySQL Connector/J版本選擇:

注意:如果是MySQL5.X系列的話,使用8.0.X的驅(qū)動會有兼容性問題出現(xiàn),請留意!
1.1MySQL Connector/J依賴配置 maven
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
gradle
// https://mvnrepository.com/artifact/mysql/mysql-connector-java compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.11'
1.2Druid依賴配置
maven
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
####gradle
// https://mvnrepository.com/artifact/com.alibaba/druid compile group: 'com.alibaba', name: 'druid', version: '1.1.10'
2.配置DataSource
這里我們使用Java Config。我在使用YAML配置的時候,發(fā)現(xiàn)代碼提示不完整,這大大增加了出錯的可能性,所以推薦使用Java Config。
2.1創(chuàng)建配置類
@Configuration
public class Config {
@Bean
public DruidDataSource druidDataSource() {
//Druid 數(shù)據(jù)源配置
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");
//初始連接數(shù)(默認(rèn)值0)
dataSource.setInitialSize(8);
//最小連接數(shù)(默認(rèn)值0)
dataSource.setMinIdle(8);
//最大連接數(shù)(默認(rèn)值8,注意"maxIdle"這個屬性已經(jīng)棄用)
dataSource.setMaxActive(32);
return dataSource;
}
}
2.2注意事項(xiàng)
部分注釋寫在代碼里面了,這里說兩個注意事項(xiàng)
一個是DriverClassName
8.0.11驅(qū)動(應(yīng)該是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”。 這已被棄用。 新的驅(qū)動程序類是`com.mysql.cj.jdbc.Driver' 所以注意一個屬性的設(shè)置“setDriverClassName” 另一個注意事項(xiàng)是URL的設(shè)置,有4個參數(shù)需要注意一下
- characterEncoding=utf8 (字符編碼)
- useSSL=false (發(fā)現(xiàn)是8版本開始才需要添加,5.X印象中不需要,添加這個參數(shù)可能和MySQL的SSL連接設(shè)置有關(guān)系)
- serverTimezone=UTC (當(dāng)連接數(shù)據(jù)庫時候,出現(xiàn)Time Zone錯誤時添加此參數(shù),我貌似是使用Druid連接池時才出現(xiàn)的這個問題)
- allowPublicKeyRetrieval=true (使用root賬戶登陸沒問題,使用普通賬戶會提示Public Key Retrieval錯誤)
更多配置,請參考Druid項(xiàng)目中的wiki,根據(jù)需求進(jìn)行配置

到此這篇關(guān)于SpringBoot集成Druid連接池連接MySQL8.0.11的文章就介紹到這了,更多相關(guān)SpringBoot集成Druid連接池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中圖片轉(zhuǎn)換為Base64的示例及注意事項(xiàng)
本文介紹了Base64編碼的概念及其作用,同時列舉了在實(shí)現(xiàn)圖片轉(zhuǎn)換為Base64過程中需要注意的問題,包括文件大小、讀取異常、圖片格式、網(wǎng)絡(luò)傳輸效率以及數(shù)據(jù)安全性等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-10-10
關(guān)于springboot加載yml配置文件的no字段自動轉(zhuǎn)義問題
這篇文章主要介紹了關(guān)于springboot加載yml配置文件的no字段自動轉(zhuǎn)義問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Java String.replace()方法"無效"的原因及解決方式
這篇文章主要介紹了Java String.replace()方法"無效"的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Java+opencv3.2.0實(shí)現(xiàn)人臉檢測功能
這篇文章主要為大家詳細(xì)介紹了Java+opencv3.2.0實(shí)現(xiàn)人臉檢測功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
java JDBC主要組件連接數(shù)據(jù)庫及執(zhí)行SQL過程示例全面詳解
這篇文章主要為大家介紹了java JDBC主要組件連接數(shù)據(jù)庫及執(zhí)行SQL的過程示例全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
SpringBoot 整合 dubbo xml實(shí)現(xiàn)代碼示例
這篇文章主要介紹了SpringBoot 整合 dubbo xml實(shí)現(xiàn)代碼示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03

