亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Tomcat 7-dbcp配置數(shù)據(jù)庫連接池詳解

 更新時(shí)間:2017年04月15日 16:54:21   投稿:lqh  
這篇文章主要介紹了Tomcat 7-dbcp配置數(shù)據(jù)庫連接池詳解的相關(guān)資料,需要的朋友可以參考下

Tomcat 7-dbcp配置數(shù)據(jù)庫連接池詳解

原理

      關(guān)于連接池,大家都曉得用來限定對(duì)數(shù)據(jù)庫的連接。基本的原理是預(yù)先在緩沖池中放入一定的空閑連接,當(dāng)程序需要和數(shù)據(jù)庫來交互時(shí),不是直接新建數(shù)據(jù)庫連接而是在連接池中直接取,使用完成后再放回到連接池中。為什么要這樣犧牲一個(gè)緩沖來存放這些原本就會(huì)使用的連接呢?在上面講了一個(gè)好處就是可以限定連接數(shù),這樣不會(huì)造成N多的數(shù)據(jù)庫連接最后宕機(jī);額外有了這樣一個(gè)連接池,也可以來監(jiān)聽這些連接和便于管理。

配置

1.拷貝相關(guān)的jar

要知道連接池不是用來直接操作數(shù)據(jù)庫的,最終進(jìn)行相關(guān)操作的還是相關(guān)的jdbc驅(qū)動(dòng)。如果是tomcat服務(wù)器,直接將驅(qū)動(dòng)拷到tomncat的lib中。對(duì)于Java是ojdbc6.jar;對(duì)于sqlserver來講是tomcat-dbcp.jar、servlet-ap.jar和sql server的驅(qū)動(dòng)sqljdbc4.jar 包到項(xiàng)目文件的web-inf 文件夾下的lib目錄。 

2.配置context.xml

   name="jdbc/drp" 
   auth="Container" 
   type="javax.sql.DataSource" 
   factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
   maxActive="100" 
   maxIdle="30" 
 maxWait="10000" 
 username="drp1" 
 password="drp1" 
 driverClassName="oracle.jdbc.driver.OracleDriver" 
 url="jdbc:oracle:thin:@localhost:1521:drp" /> 

如果是全局配置的話,將context.xml文件放在tomcat的配置文件夾conf中即可;若想局部控制就需要將context.xml放在指定的項(xiàng)目中webroot的meta-inf中,就只會(huì)對(duì)自己本項(xiàng)目起作用。

注:

Name:指定連接池的名稱
Auth:是連接池管理權(quán)屬性,Container表示容器管理
type:數(shù)據(jù)源類型
factory:這個(gè)是在tomcat 5之后對(duì)于commons-dbcp的一種處理方案,具體是用了這樣一個(gè)指定的實(shí)現(xiàn)類來處理的。性能更加優(yōu)越,也能夠兼容dbcp。
maxActive:最大的分配連接數(shù)。
maxIdle:idle是空閑的意思,所以這個(gè)就是當(dāng)tomcat啟動(dòng)時(shí),緩沖池為連接的新建的連接數(shù)。
maxWait:本文最大響應(yīng)時(shí)間為10s。
url:為數(shù)據(jù)庫地址。
sqlserver的格式:jdbc:sqlserver://localhost:1433;DatabaseName=name;
driverclassname:驅(qū)動(dòng)地址。
sqlserver的為:com.microsoft.sqlserver.jdbc.SQLServerDriver

 3.驗(yàn)證

Connectionconn=null; 
PreparedStatementpstmt=null; 
ResultSetrs=null; 
try{ 
//實(shí)例DBCP連接池 
Contextctx=new InitialContext(); 
//通過JNDI訪問指定的連接池 
DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/drp"); 
//實(shí)例化數(shù)據(jù)庫連接 
conn=ds.getConnection(); 
//查詢語句 
pstmt=conn.prepareStatement("select* from t_user"); 
rs=pstmt.executeQuery(); 
if(rs.next()){ 
System.out.print(rs.getString("user_id")+rs.getString("user_name")); 
System.out.print(conn); 
} 
}catch(SQLExceptione){ 
 
} 
finally{ 
 
} 

后序

    之前tomcat 5的版本即可以在localhost:8080/admin中視圖化配置,也可在xml中;后面就棄用了視圖化配置的過程??偟脕碚f對(duì)于針對(duì)數(shù)據(jù)連接的處理的方案,有他的好處,也需要開發(fā)人員在平時(shí)的編程中養(yǎng)成好的習(xí)慣,如果對(duì)于開啟的連接沒有關(guān)閉,當(dāng)連接池夠大的時(shí)候,會(huì)影響性能;如果達(dá)到峰值,那么程序直接宕掉。也減少了咱們?cè)趧?chuàng)建數(shù)據(jù)庫連接的時(shí)間。當(dāng)然除了dbcp,也有C3P0、Poolmen這樣的處理方案。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

最新評(píng)論