聲明:本欄目所使用的素材都是凱哥學(xué)堂VIP學(xué)員所寫唐全,學(xué)員有權(quán)匿名,對(duì)文章有最終解釋權(quán)墩崩;凱哥學(xué)堂旨在促進(jìn)VIP學(xué)員互相學(xué)習(xí)的基礎(chǔ)上公開(kāi)筆記昧绣。
建立數(shù)據(jù)庫(kù)連接是相當(dāng)耗時(shí)和耗費(fèi)資源的,而且一個(gè)數(shù)據(jù)庫(kù)服務(wù)器能夠同時(shí)建立的連接數(shù)也是有限的夜畴,在大型的Web應(yīng)用中奏纪,可能同時(shí)會(huì)有成百上千個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求,如果Web應(yīng)用程序?yàn)槊恳粋€(gè)客戶請(qǐng)求分配一個(gè)數(shù)據(jù)庫(kù)連接斩启,將導(dǎo)致性能的急劇下降序调。為了能夠重復(fù)利用數(shù)據(jù)庫(kù)連接,提高對(duì)請(qǐng)求的響應(yīng)時(shí)間和服務(wù)器的性能兔簇,可以采用連接池技術(shù)发绢。連接池技術(shù)預(yù)先建立多個(gè)數(shù)據(jù)庫(kù)連接對(duì)象,然后將連接對(duì)象保存到連接池中垄琐,當(dāng)客戶請(qǐng)求到來(lái)時(shí)边酒,從池中取出一個(gè)連接對(duì)象為客戶服務(wù),當(dāng)請(qǐng)求完成后狸窘,客戶程序調(diào)用close()方法墩朦,將連接對(duì)象放回池中。
在普通的數(shù)據(jù)庫(kù)訪問(wèn)程序中翻擒,客戶程序得到的連接對(duì)象是物理連接氓涣,調(diào)用連接對(duì)象的close()方法將關(guān)閉連接,而采用連接池技術(shù)陋气,客戶程序得到的連接對(duì)象是連接池中物理連接的一個(gè)句柄劳吠,調(diào)用連接對(duì)象的close()方法,物理連接并沒(méi)有關(guān)閉巩趁,數(shù)據(jù)源的實(shí)現(xiàn)只是刪除了客戶程序中的連接對(duì)象和池中的連接對(duì)象之間的聯(lián)系痒玩。
1.先準(zhǔn)備一些數(shù)據(jù)庫(kù)連接對(duì)象放入池內(nèi)
2.等待程序來(lái)抓對(duì)象,后面的程序如果沒(méi)有抓到對(duì)象议慰,就處于等待狀態(tài)Java提供
3.數(shù)據(jù)庫(kù)連接池的目的是優(yōu)化數(shù)據(jù)庫(kù)連接對(duì)象的蠢古,不會(huì)自動(dòng)給你加入驅(qū)動(dòng),需要自己加入驅(qū)動(dòng)
可用通過(guò)maven資源庫(kù)下載jar包
org.apache.commons.dbcp2.BasicDataSource具體操作類
最大連接數(shù)老版本方法 setMaxActive(3)颁督;
注意:連接池內(nèi)的對(duì)象践啄,用完后必須調(diào)用close,放回池中沉御,否則會(huì)影響其他程序與數(shù)據(jù)庫(kù)的連接
1版本:資源管理不是很好