SpringBoot集成Druid連接池連接MySQL8.0.11
這篇博客簡(jiǎn)單介紹spring boot集成druid連接池的簡(jiǎn)單配置和注意事項(xiàng)
本次使用的是MySQL8.0.11版本
前提:一個(gè)已經(jīng)搭建好的Spring Boot項(xiàng)目和可以使用的數(shù)據(jù)庫(kù)
注意:MySQL8.0.X的配置和5.7.X有小差異,整體思路完全一樣
1.配置依賴
依賴管理我們可以使用maven或者gradle
MySQL Connector/J版本選擇:
注意:如果是MySQL5.X系列的話,使用8.0.X的驅(qū)動(dòng)會(huì)有兼容性問(wèn)題出現(xiàn),請(qǐng)留意!
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配置的時(shí)候,發(fā)現(xiàn)代碼提示不完整,這大大增加了出錯(cuò)的可能性,所以推薦使用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"這個(gè)屬性已經(jīng)棄用) dataSource.setMaxActive(32); return dataSource; } }
2.2注意事項(xiàng)
部分注釋寫(xiě)在代碼里面了,這里說(shuō)兩個(gè)注意事項(xiàng)
一個(gè)是DriverClassName
8.0.11驅(qū)動(dòng)(應(yīng)該是8版本開(kāi)始),棄用了原來(lái)的方法,我們直接去看源碼也能找到。
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ū)動(dòng)程序類是`com.mysql.cj.jdbc.Driver' 所以注意一個(gè)屬性的設(shè)置“setDriverClassName” 另一個(gè)注意事項(xiàng)是URL的設(shè)置,有4個(gè)參數(shù)需要注意一下
- characterEncoding=utf8 (字符編碼)
- useSSL=false (發(fā)現(xiàn)是8版本開(kāi)始才需要添加,5.X印象中不需要,添加這個(gè)參數(shù)可能和MySQL的SSL連接設(shè)置有關(guān)系)
- serverTimezone=UTC (當(dāng)連接數(shù)據(jù)庫(kù)時(shí)候,出現(xiàn)Time Zone錯(cuò)誤時(shí)添加此參數(shù),我貌似是使用Druid連接池時(shí)才出現(xiàn)的這個(gè)問(wèn)題)
- allowPublicKeyRetrieval=true (使用root賬戶登陸沒(méi)問(wèn)題,使用普通賬戶會(huì)提示Public Key Retrieval錯(cuò)誤)
更多配置,請(qǐng)參考Druid項(xiàng)目中的wiki,根據(jù)需求進(jìn)行配置
到此這篇關(guān)于SpringBoot集成Druid連接池連接MySQL8.0.11的文章就介紹到這了,更多相關(guān)SpringBoot集成Druid連接池內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java遞歸實(shí)現(xiàn)拼裝多個(gè)api的結(jié)果操作方法
本文給大家分享java遞歸實(shí)現(xiàn)拼裝多個(gè)api的結(jié)果的方法,說(shuō)白了就是好幾個(gè)API結(jié)果拼裝成的,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-09-09Java讀取Excel、docx、pdf和txt等文件萬(wàn)能方法舉例
在Java開(kāi)發(fā)中處理文件是常見(jiàn)需求,本文以實(shí)際代碼示例詳述如何使用ApachePOI庫(kù)及其他工具讀取和寫(xiě)入Excel、Word、PDF等文件,介紹了ApachePOI、ApachePDFBox和EasyExcel等庫(kù)的使用方法,幫助開(kāi)發(fā)者有效讀取不同格式文件,需要的朋友可以參考下2024-09-09詳解Spring系列之@ComponentScan批量注冊(cè)bean
本文介紹各種@ComponentScan批量掃描注冊(cè)bean的基本使用以及進(jìn)階用法和@Componet及其衍生注解使用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-02-02SpringBoot權(quán)限認(rèn)證-Sa-Token的使用詳解
Sa-Token是一款輕量級(jí)Java權(quán)限認(rèn)證框架,它簡(jiǎn)化了權(quán)限管理,提高了開(kāi)發(fā)效率,本文通過(guò)實(shí)例介紹了Sa-Token的基本概念、與其他框架的比較、基本語(yǔ)法和高級(jí)用法,并探討了其核心原理和實(shí)際應(yīng)用場(chǎng)景,感興趣的朋友一起看看吧2024-09-09Java調(diào)用C++程序的實(shí)現(xiàn)方式
這篇文章主要介紹了Java調(diào)用C++程序的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02關(guān)于Idea使用git時(shí)commit特別慢的問(wèn)題及解決方法
這篇文章主要介紹了關(guān)于Idea使用git時(shí)commit特別慢的問(wèn)題及解決方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10Springboot集成SSE實(shí)現(xiàn)單工通信消息推送流程詳解
SSE簡(jiǎn)單的來(lái)說(shuō)就是服務(wù)器主動(dòng)向前端推送數(shù)據(jù)的一種技術(shù),它是單向的,也就是說(shuō)前端是不能向服務(wù)器發(fā)送數(shù)據(jù)的。SSE適用于消息推送,監(jiān)控等只需要服務(wù)器推送數(shù)據(jù)的場(chǎng)景中,下面是使用Spring Boot來(lái)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的模擬向前端推動(dòng)進(jìn)度數(shù)據(jù),前端頁(yè)面接受后展示進(jìn)度條2022-11-11