摘要:申請連接時執行檢測連接是否有效歸還連接時執行檢測連接是否有效建議配置為,不影響性能,并且保證安全性申請連接的時候檢測,如果空閑時間大于,執行檢測連接是否有效。
Druid入門 Maven倉庫地址
手動獲取連接com.alibaba druid 1.1.6
public class Driud { private static DruidDataSource druidDataSource = null; //在類加載時進行初始化 static { Properties properties = new Properties(); try { properties.load(Driud.class.getResourceAsStream("/druid.properties")); druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(properties); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return druidDataSource.getConnection(); } }配置信息 總體配置
name=test driverClassName = com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test username=root password=overdose initialSize=5 maxActive=10 minIdle=3 maxWait=60000 removeAbandoned=true removeAbandonedTimeout=180 timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000 validationQuery=SELECT 1 testWhileIdle=true testOnBorrow=false testOnReturn=false poolPreparedStatements=true maxPoolPreparedStatementPerConnectionSize=50 filters=stat單個配置
配置 | 缺省值 | 解釋 |
---|---|---|
name | 當存在多個數據源時, 通過名字區分 | |
url | 連接數據庫的Url mysql: jdbc:mysql://localhost:3306/test oracle : jdbc:oracle:thin:@localhost:1521:ocnauto |
|
username | 連接數據庫的用戶名 | |
password | 連接數據庫的密碼 | |
driverClassName | 根據url自動識別 | 可選的配置 druid會自動根據url選擇對應的驅動 |
initialSize | 0 | 初始化時創建連接的個數 |
maxActive | 8 | 最大連接池數量 |
沒用 詳見Druid常見問題 | ||
minIdle | 最小連接池數量 | |
maxWait | 獲取連接時最大等待時間, 單位為毫秒, 缺省為公平鎖 公平鎖的簡單介紹 | |
poolPreparedStatements | 是否緩存preparedStatement, 也就是PSCache | |
maxPoolPreparedStatementPerConnectionSize | -1 | 每個連接上PSCache的大小 |
validationQuery | 用來檢測連接是否有效的sql,要求是一個查詢語句。 | |
testOnBorrow | true | 申請連接時執行validationQuery檢測連接是否有效 |
testOnReturn | false | 歸還連接時執行validationQuery檢測連接是否有效 |
testWhileIdle | false | 建議配置為true,不影響性能,并且保證安全性 申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。 |
timeBetweenEvictionRunsMillis | 間隔多久進行一次檢測, 檢測需要關閉的空閑連接, 單位為毫秒 | |
minEvictableIdleTimeMillis | 一個連接在池中最小生存的時間,單位是毫秒 | |
connectionInitSqls | 連接初始化的時候執行的sql | |
exceptionSorter | 根據dbType自動識別 | 數據庫拋出一些不可恢復的異常時,拋棄連接 |
filters | 通過別名的方式配置擴展插件 |
連接池初始化時創建initialSize個連接, 取出連接時, 先判斷有無空閑連接, 如果有空閑連接則返回, 否則再判斷當前連接池是否等于maxActive, 如果等于maxActive, 則最多等待maxWait時間, 如果中途有連接被釋放則返回, 否則拋出異常. 如果不等于maxActive則建立一個新連接. 連接使用完畢后, 并不將其關閉, 而是放回連接池, 等待下一次獲取, 當連接池連接數目小于minIdle, 則自動補充連接
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/70940.html
摘要:看過的一些書上也是多數介紹了這兩種數據庫連接池,自己做的也是使用。參考資料文檔首頁文檔問題阿里學習,號稱最好的數據庫連接池常用數據庫連接池配置說明學習整合,使用連接池使用和監控配置數據源配置如果文章有錯的地方歡迎指正,大家互相交流。 前言 本章節主要講解Druid數據庫連接池,為什么要學Druid數據庫連接池呢?? 我的知識儲備數據庫連接池有兩種->C3P0,DBCP,可是現在看起來并...
摘要:二環境準備編譯器選擇這里我們使用進行工作流開發,雖然對于工作流的友好度不是很好,因為會有一些小的,但是,對于的開發還是非常的好的。新建后出現下面的編輯頁面到現在,編輯插件就準備好了。 文章源碼托管:https://github.com/OUYANGSIHA...歡迎 star !!! 一、前言 在上一節中我們對activiti進行了基本的介紹activiti進行了基本的介紹,同時介紹了...
摘要:前言由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 前言 由于寫的文章已經是有點多了,為了自己和大家的檢索方便,于是我就做了這么一個博客導航。 由于更新比較頻繁,因此隔一段時間才會更新目錄導航哦~想要獲取最新原創的技術文章歡迎關注我的公眾號:Java3y Java3y文章目錄導航 Java基礎 泛型就這么簡單 注解就這么簡單 Druid數據庫連接池...
摘要:多數據源,一般用于對接多個業務上獨立的數據庫可能異構數據庫。這也就導致異構數據庫的檢查也是類似問題。內容略數據源多數據源,涉及到異構數據庫,必須明確指定,否則的轉換出錯取值內容可參考初始連接數最大連接池數量。 開篇之前,說一句題外話。多數據源和動態數據源的區別。 多數據源,一般用于對接多個業務上獨立的數據庫(可能異構數據庫)。 動態數據源,一般用于大型應用對數據切分。 配置參考 如...
閱讀 2921·2023-04-26 01:01
閱讀 3692·2021-11-23 09:51
閱讀 2523·2021-11-22 14:44
閱讀 3605·2021-09-23 11:57
閱讀 2841·2021-09-22 14:58
閱讀 5881·2021-09-10 11:25
閱讀 2110·2019-08-30 13:11
閱讀 1600·2019-08-30 12:59