Tomcat 7-dbcp配置數(shù)據(jù)庫連接池詳解
Tomcat 7-dbcp配置數(shù)據(jù)庫連接池詳解
原理
關(guān)于連接池,大家都曉得用來限定對數(shù)據(jù)庫的連接?;镜脑硎穷A(yù)先在緩沖池中放入一定的空閑連接,當(dāng)程序需要和數(shù)據(jù)庫來交互時,不是直接新建數(shù)據(jù)庫連接而是在連接池中直接取,使用完成后再放回到連接池中。為什么要這樣犧牲一個緩沖來存放這些原本就會使用的連接呢?在上面講了一個好處就是可以限定連接數(shù),這樣不會造成N多的數(shù)據(jù)庫連接最后宕機;額外有了這樣一個連接池,也可以來監(jiān)聽這些連接和便于管理。
配置
1.拷貝相關(guān)的jar
要知道連接池不是用來直接操作數(shù)據(jù)庫的,最終進行相關(guān)操作的還是相關(guān)的jdbc驅(qū)動。如果是tomcat服務(wù)器,直接將驅(qū)動拷到tomncat的lib中。對于Java是ojdbc6.jar;對于sqlserver來講是tomcat-dbcp.jar、servlet-ap.jar和sql server的驅(qū)動sqljdbc4.jar 包到項目文件的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放在指定的項目中webroot的meta-inf中,就只會對自己本項目起作用。
注:
Name:指定連接池的名稱 Auth:是連接池管理權(quán)屬性,Container表示容器管理 type:數(shù)據(jù)源類型 factory:這個是在tomcat 5之后對于commons-dbcp的一種處理方案,具體是用了這樣一個指定的實現(xiàn)類來處理的。性能更加優(yōu)越,也能夠兼容dbcp。 maxActive:最大的分配連接數(shù)。 maxIdle:idle是空閑的意思,所以這個就是當(dāng)tomcat啟動時,緩沖池為連接的新建的連接數(shù)。 maxWait:本文最大響應(yīng)時間為10s。 url:為數(shù)據(jù)庫地址。 sqlserver的格式:jdbc:sqlserver://localhost:1433;DatabaseName=name; driverclassname:驅(qū)動地址。 sqlserver的為:com.microsoft.sqlserver.jdbc.SQLServerDriver
3.驗證
Connectionconn=null;
PreparedStatementpstmt=null;
ResultSetrs=null;
try{
//實例DBCP連接池
Contextctx=new InitialContext();
//通過JNDI訪問指定的連接池
DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/drp");
//實例化數(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中;后面就棄用了視圖化配置的過程。總得來說對于針對數(shù)據(jù)連接的處理的方案,有他的好處,也需要開發(fā)人員在平時的編程中養(yǎng)成好的習(xí)慣,如果對于開啟的連接沒有關(guān)閉,當(dāng)連接池夠大的時候,會影響性能;如果達到峰值,那么程序直接宕掉。也減少了咱們在創(chuàng)建數(shù)據(jù)庫連接的時間。當(dāng)然除了dbcp,也有C3P0、Poolmen這樣的處理方案。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Tomcat 啟動時 SecureRandom 非常慢解決辦法
這篇文章主要介紹了Tomcat 啟動時 SecureRandom 非常慢解決辦法的相關(guān)資料,需要的朋友可以參考下2017-06-06
解決tomcat部署時war和war exploded導(dǎo)致的問題
war包和warexploded模式的區(qū)別主要在于部署方式,war包是在項目發(fā)布時打包上傳,而warexploded模式則是直接將文件夾結(jié)構(gòu)上傳到服務(wù)器,支持熱部署,常用于開發(fā)階段,這種差異可能導(dǎo)致樣式和文件引用問題,如在不同電腦部署時路徑設(shè)置的不同2024-10-10
tomcat使用問題之安裝后無法訪問localhost:8080解決
當(dāng)Tomcat無法訪問localhost:8080時,可能是由于未啟動、環(huán)境變量未配置、端口號占用或版本問題,這篇文章主要介紹了tomcat使用問題之安裝后無法訪問localhost:8080解決的相關(guān)資料,需要的朋友可以參考下2024-10-10
Tomcat無法映射到activiti-app導(dǎo)致activiti無法啟動頁面的解決方法
這篇文章主要介紹了Tomcat無法映射到activiti-app導(dǎo)致activiti無法啟動頁面的解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-11-11
解決Tomcat啟動報錯Publishing?failed??multiple問題
這篇文章主要介紹了解決Tomcat啟動報錯Publishing?failed??multiple問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
tomcat異常解決(Invalid character found in the request target. Th
這篇文章主要介紹了tomcat 異常的解決方案,幫助大家排查錯誤,保持服務(wù)器的穩(wěn)定,感興趣的朋友可以了解下2020-10-10
tomcat 幾種連接池配置代碼(包括tomcat5.0,tomcat5.5x,tomcat6.0)
Tomcat6.0連接池配置 實現(xiàn)代碼,大家可以參考下。2009-08-08

