解決springboot?druid數(shù)據(jù)庫連接池連接失敗后一直重連問題
druid數(shù)據(jù)庫連接池連接失敗后一直重連問題
當(dāng)數(shù)據(jù)庫暫?;蛘呔芙^連接時,druid會一直連接
增加如下配置可以解決重連問題
spring.datasource.druid.break-after-acquire-failure=true spring.datasource.druid.connection-error-retry-attempts=3
druid數(shù)據(jù)庫連接池技術(shù)的實(shí)現(xiàn)與常見錯誤
第一步,win+R cmd進(jìn)入到doc窗口,敲入mysql -V
一定要查看你mysql數(shù)據(jù)庫的版本??!(以下是博主的)

mysql5.6使用的是 mysql-connector-java-5.1.26-bin.jar
更高的mysql版本需要使用 mysql-connector-java-8.0.19.jar(最新版本)數(shù)據(jù)庫版本不對應(yīng)會導(dǎo)致連接失敗的。
mysql-connection-java的jar包 官網(wǎng)下載點(diǎn)擊

不用登錄,直接下載


如果你不想下載最新版本,點(diǎn)擊Archives即可


下載完畢就要導(dǎo)入jar包 如圖所示你正確導(dǎo)入包之后會出現(xiàn)小三角符號。

第二步,寫好配置文件jdbc.properties
分兩種:
#這個是mysql5.5版本的配置文件 username=用戶名 password=密碼 #url 注意這個book 表示你要連接的數(shù)據(jù)庫 url=jdbc:mysql://localhost:3306/book driverClassName=com.mysql.jdbc.Driver initialSize=5 maxActive=5
#這個是mysql更高版本的配置文件 username=用戶名 password=密碼 #url 注意這個book表示你要連接的數(shù)據(jù)庫 url=jdbc:mysql://localhost:3306/book?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false driverClassName=com.mysql.cj.jdbc.Driver initialSize=5 maxActive=5
以上如果配置文件寫的不對也會報錯。
最后,直接上阿里Druid數(shù)據(jù)庫連接池靜態(tài)代碼塊
public class JavaUtils { //實(shí)現(xiàn)數(shù)據(jù)庫連接和關(guān)閉的封裝 體會Java編程的思想
private static DruidDataSource dataSource;
static {
try {
// 讀取jdbc.properties屬性的配置文件
Properties properties = new Properties();
//從流中加載數(shù)據(jù)
InputStream inputStream = JavaUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(inputStream);
dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties);
System.out.println(dataSource.getConnection());
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
}
/* 關(guān)閉連接 放回數(shù)據(jù)庫連接池*/
public static void closeSources(PreparedStatement ps, Connection con) {
try {
if (ps != null)
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null)
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}然后我又遇到的錯誤了 ,原因是配置文件的路徑不對而報錯(而且是瘋狂爆紅一直不停的那種)。

如果遇到報空指針異常,原因錯誤也很簡單,我當(dāng)時dataSource對象沒有new出來卻用它來調(diào)用方法,本人也嘗試一直打斷點(diǎn)調(diào)試找bug但沒找到原因,歸根結(jié)底是我沒有好好理解每一行代碼的含義,就一直拿著錯誤去百度,花了很多時間,也算是積累了經(jīng)驗(yàn)教訓(xùn)了。如果出現(xiàn)以下就算連接成功。但當(dāng)看到紅字我以為又失敗了哈哈

其實(shí)我之前用jdbc連接數(shù)據(jù)庫是沒有什么毛病的,但是我們要知道:


以上兩張圖片摘自尚硅谷宋紅康jdbc核心技術(shù)。
總結(jié)
這些僅為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA LinkedList和ArrayList的使用及性能分析
JAVA LinkedList和ArrayList的使用及性能分析,這篇文章也是以JAVA List的總結(jié)。2013-11-11
java實(shí)現(xiàn)圖的鄰接表存儲結(jié)構(gòu)的兩種方式及實(shí)例應(yīng)用詳解
這篇文章主要介紹了java實(shí)現(xiàn)圖的鄰接表存儲結(jié)構(gòu)的兩種方式及實(shí)例應(yīng)用詳解,鄰接表構(gòu)建圖是必須需要一個Graph對象,也就是圖對象!該對象包含屬性有:頂點(diǎn)數(shù)、邊數(shù)以及圖的頂點(diǎn)集合,需要的朋友可以參考下2019-06-06
springboot整合Quartz實(shí)現(xiàn)動態(tài)配置定時任務(wù)的方法
本篇文章主要介紹了springboot整合Quartz實(shí)現(xiàn)動態(tài)配置定時任務(wù)的方法,非常具有實(shí)用價值,需要的朋友可以參考下2017-10-10
關(guān)于SpringBoot的spring.factories文件詳細(xì)說明
spring.factories 文件是 Spring Boot 自動配置機(jī)制的核心部分之一,它位于每個 Spring Boot 自動配置模塊的 META-INF 目錄下,經(jīng)常看到 spring.factories 文件,卻沒有對它進(jìn)行深入的了解和分析,今天我們就一起揭開面紗看看它的內(nèi)在,需要的朋友可以參考下2024-12-12
Java使用Collections工具類對List集合進(jìn)行排序
這篇文章主要介紹了Java使用Collections工具類對List集合進(jìn)行排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-10-10

