解決springboot?druid數(shù)據(jù)庫連接池連接失敗后一直重連問題
druid數(shù)據(jù)庫連接池連接失敗后一直重連問題
當數(shù)據(jù)庫暫?;蛘呔芙^連接時,druid會一直連接
增加如下配置可以解決重連問題
spring.datasource.druid.break-after-acquire-failure=true spring.datasource.druid.connection-error-retry-attempts=3
druid數(shù)據(jù)庫連接池技術(shù)的實現(xiàn)與常見錯誤
第一步,win+R cmd進入到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)下載點擊

不用登錄,直接下載


如果你不想下載最新版本,點擊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 { //實現(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();
}
}
}然后我又遇到的錯誤了 ,原因是配置文件的路徑不對而報錯(而且是瘋狂爆紅一直不停的那種)。

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

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


以上兩張圖片摘自尚硅谷宋紅康jdbc核心技術(shù)。
總結(jié)
這些僅為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java中關(guān)于控制臺讀取數(shù)字或字符串的方法
下面小編就為大家?guī)硪黄狫ava中關(guān)于控制臺讀取數(shù)字或字符串的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10
postman測試post請求參數(shù)為json類型的實例講解
下面小編就為大家分享一篇postman測試post請求參數(shù)為json類型的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

