數(shù)據(jù)庫連接池介紹
在沒有連接池描沟,需要程序直接向數(shù)據(jù)庫獲取連接,頻繁對(duì)數(shù)據(jù)庫進(jìn)行連接會(huì)使數(shù)據(jù)庫宕機(jī)钾虐,進(jìn)程直接被結(jié)束噪窘;為了緩解此壓力,建立了一個(gè)緩沖效扫,由此緩沖對(duì)數(shù)據(jù)庫操作倔监, 此緩沖區(qū)存放多個(gè)創(chuàng)建好的連接對(duì)象,程序要對(duì)數(shù)據(jù)庫訪問時(shí)菌仁,從連接池中取得一個(gè)連接對(duì)象浩习,用完將連接對(duì)象返回給連接池,济丘。
jdk只提供接口谱秽,具體的程序需要三方j(luò)ar包。DBCP(apache)摹迷、C3P0疟赊、druid(阿里)
沒有Mybatis情況下如何使用連接池:
jdk提供javax.sql.DataSource接口獲取連接池,只提供接口峡碉,無實(shí)現(xiàn)類近哟,只建立了一個(gè)標(biāo)準(zhǔn)。tomcat實(shí)現(xiàn)了這個(gè)接口的實(shí)現(xiàn)類鲫寄,并調(diào)用DBCPjar包 椅挣,由Tomcat管理連接池头岔,java程序需要連接時(shí)就必須和Tomcat間進(jìn)行進(jìn)程間的通信,jdk中的JNDI(java命名目錄接口) jar包來完成進(jìn)程間的通信鼠证,其API為javax.namming.Context接口中的lookup(“數(shù)據(jù)源名稱”)方法
Tomcat配置連接池
1.配置tomcat下的conf下的context.xml文件峡竣,在<Context></Context>之間:
<Resource name="jdbc/oracle"
auth="Container" <!-- 授權(quán) -->
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.driver.OracleDriver"
url=" jdbc:oracle:thin:@host:port:databse"
username=" user"
password="password"
maxActive="100" <!-- 最大激活連接數(shù),同時(shí)有20個(gè)連接 -->
maxIdle="30" <!-- 最大空閑連接數(shù)量九,沒有人用也得存在 -->
maxWait="10000" /> <!-- 新的請(qǐng)求等待時(shí)間 -->
2.將對(duì)應(yīng)數(shù)據(jù)庫的驅(qū)動(dòng)類dbcp适掰、pool、connection三個(gè)jar包放到tomcat的lib目錄下
啟動(dòng)Tomcat后測試:
...
Context c = new InitalContext();
DataSource pool = (DataSource)c.lookup("java:comp/env/jdbc/oracle";
Connection conn = pool.getConnection();
...