本質
- 重寫getConnection
從資料庫連接池(池子鏈表)中獲取連接,若池子中沒有了,則重新創建連接(同時要判斷已創建連接數是否大于預設的最大連接數)
- 重寫釋放資源
回傳到資料庫連接池中
- 池子中在用,池子中有的不是current,current是目前已經創建的連接數
介面
- 創建連接(create)
- 獲取連接(get)//從連接池(池子鏈表)中獲取conn物件
- 釋放連接(free)//傳回資料庫連接池中
- 獲取當前已創建連接數(getCurrent)
實作類
- 先靜態代碼塊加載,注冊驅動,初始化資料庫連接池
- getFree:獲取池子鏈表中的個數
- getCurrent:獲取已經創建的連接數
優化
- 獲取連接時判斷是否有效,采用isValid(TIME_OUT),若無效則destroy之
- 設計最大創建連接數,getCurrent方法來獲取,若已超出最大連接數則拋出例外
- 獲取空閑連接數(getFreeConnection)
- 使用synchronized來防止執行緒沖突問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/270995.html
標籤:MySQL
