模擬封裝連線池(1)

2022-07-23 18:15:19 字數 1798 閱讀 5650

------------恢復內容開始------------

為什麼要封裝連線池?

在mvc分層思想中, model中的dao持久層,每個方法中負責做讀寫資料庫,在讀寫資料庫時會使用jdbc

流程,而每次的流程都是固定的,產生了**冗餘,而在建立連線時也產生了效能低與浪費資源的問題。

1.在使用jdbc流程時發現

執行建立連線的部分效能很慢,建立連線後,連線還需要關閉,很浪費資源

解決問題的思路

單例模式不好,因為連線只能存在乙個,(可以想象成乙個連線是一座橋,想到河對岸就需要造一座橋,很多人走一座橋,肯定是不好的)

單純不關閉連線不好,(橋一直不拆,會留下很多橋,繼而浪費很多資源,也不好)

可以預先建立幾個連線,存在集合當中,留著復用

連線不可以同一時間被多個人使用(獨木橋)

連線正在使用如何知道?設定乙個屬性,用來描述是否可用的狀態,但是connection類不是我們寫的,沒有這個屬性

如何將乙個連線與和乙個屬性繫結在一起?

結論

1.需要自己單獨描述乙個類myconnection,目的是為了將乙個連線和乙個狀態繫結在一起

2.還需要乙個類connectionpool(集合),目的是為了管理好多連線

具體看**注釋!!!

所需包與類

test類

myconnection類

connectionpool類

最終結果    初次載入,往連線池記憶體了10個連線,載入時間慢,當後續再需要連線時,從連線池內取已載入好的連線,所以消耗時間大大減少!

此時只解決了效能問題,後續還會繼續封裝

------------恢復內容結束------------

Node Mysql連線池操作封裝

之前寫了乙個對mysql操作的封裝的部落格 node mysql操作封裝 後面方向,當你訪問量比較大的時候,直接用mysql的連線是會崩掉的,不支援這麼多的連線,用連線池操作比較好,然後就操作了一下 const mysql require mysql module.exports pool null...

SpringBoot封裝redis連線池(二)

org.springframework.boot spring boot starter data redis properties redis資料庫索引 預設為0 spring.redis.database 0 redis伺服器位址 spring.redis.host localhost redi...

c 模擬連線池 轉》

個人覺得寫得還不錯,收藏.code public class sqlconnectioncontainer public static dbconnection getconnection 沒找到 可用的鏈結 if currentnumber maxnumber 判斷連線池是否滿了 sqlconne...