解決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
以上如果配置文件寫的不對也會報(bào)錯。
最后,直接上阿里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)閉連接 放回?cái)?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(); } } }
然后我又遇到的錯誤了 ,原因是配置文件的路徑不對而報(bào)錯(而且是瘋狂爆紅一直不停的那種)。
如果遇到報(bào)空指針異常,原因錯誤也很簡單,我當(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)文章
JDBC使用游標(biāo)實(shí)現(xiàn)分頁查詢的方法
這篇文章主要介紹了JDBC使用游標(biāo)實(shí)現(xiàn)分頁查詢的方法,實(shí)例分析了jdbc查詢過程中游標(biāo)的使用及查詢分頁相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-08-08Java中關(guān)于控制臺讀取數(shù)字或字符串的方法
下面小編就為大家?guī)硪黄狫ava中關(guān)于控制臺讀取數(shù)字或字符串的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10postman測試post請求參數(shù)為json類型的實(shí)例講解
下面小編就為大家分享一篇postman測試post請求參數(shù)為json類型的實(shí)例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03