1 回答

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
不用數(shù)據(jù)庫(kù)連接池,而由程序去操作conn,其每次操作完后都需要commit,當(dāng)你的應(yīng)用中有并發(fā)寫(xiě)操作時(shí)會(huì)有一定的影響,一般都是交給數(shù)據(jù)庫(kù)連接池,,它會(huì)在一開(kāi)始初始化一定量的連接實(shí)例,當(dāng)你需要用時(shí)它會(huì)自動(dòng)分配去處理。
由于創(chuàng)建連接的代價(jià)是很高的, 我們每次訪問(wèn)數(shù)據(jù)庫(kù)都重新創(chuàng)建連接的話是非常消耗性的.
我們可以再程序啟動(dòng)的時(shí)候先創(chuàng)建出一些連接, 放在一個(gè)集合中, 訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候從集合中獲取, 使用結(jié)束再放回集合中.
這樣做只是在程序啟動(dòng)的時(shí)候消耗性能去創(chuàng)建連接, 每次訪問(wèn)數(shù)據(jù)庫(kù)的時(shí)候都是從內(nèi)存中獲取連接, 可以大大提升效率.
注意事項(xiàng):
由于池中增刪非常頻繁, 使用集合LinkedList效率較高
集合中所有連接都被占用時(shí)創(chuàng)建新連接, 但需要注意連接總數(shù)
使用組合模式/動(dòng)態(tài)代理處理釋放連接的方法, 當(dāng)運(yùn)行close方法時(shí), 將連接放回池中
添加回答
舉報(bào)