『壹』 TOMCAT怎麼配置連接池
Tomcat的連接池配置方式具體如下:
一.配置tomcat連接池
1. 修改server.xml或者在conf/Catalina/localhost下添加對應的xml片段。此處使用的是第二種方法。
在conf/Catalina/localhost文件夾下新建ROOT.xml片段,添加以下內容:
<?xmlversion="1.0"encoding="UTF-8"?>
<Context crossContext="true" useHttpOnly="true">
<Resourcename="jdbc/infogrid" type="javax.sql.DataSource" password="123456" driverClassName="com.mysql.jdbc.Driver" maxIdle="10" maxWait="50" username="root" url="jdbc:mysql://localhost:3306/infogrid?autoReconnect=true" maxActive="20"/>
</Context>
2. 為tomcat添加資料庫連接驅動包,本用例使用mysql,將mysql的驅動包添加到common/lib下
二.編寫java測試類(該類必須部署在tomcat容器中,否則無法獲得JNDI資源)
PreparedStatement ps=null;
ResultSet rs=null;
try{
InitialContext ctx=new InitialContext();
DataSource dataSource=(DataSource)ctx.lookup("java:comp/env/jdbc/infogrid");
Connection connection=dataSource.getConnection();
ps=connection.prepareStatement("select count(*) from test");
rs=ps.executeQuery();
rs.next();
System.out.println("表中行數為:"+rs.getInt(1));
rs.close();
ps.close();
System.out.println(connection.getClass());
//class org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
Field field=connection.getClass().getDeclaredField("delegate");
field.setAccessible(true);
System.out.println(field.get(connection).getClass());
//class org.apache.tomcat.dbcp.dbcp.PoolableConnection
connection.close();
//此關閉並非為真得關閉資料庫連接,具體該close實現可見上面的兩個Connection代理類,其實只是告訴連接池,該Connection已經用完了,可以被再次利用了
}catch(Exception ex){
ex.printStackTrace();
}
『貳』 tomcat榪炴帴奼犱腑榪炴帴鐨勯噸鐢ㄦ槸浠涔堟剰鎬濓紝鑳藉惁涓句釜渚嬪瓙璁茶В涓涓嬶紵錛燂紵
tomcat涓鐨勫嚑縐嶈繛鎺ユ睜閰嶇疆浠g爜 瀵逛簬澶у瀷緗戠珯鏉ヨ達紝淇℃伅鏌ヨ㈢殑嬈℃暟浼氶潪甯稿氾紝姣忔℃煡璇㈤兘闇瑕佽繖鏍風殑榪囩▼錛氬姞杞介┍鍔ㄧ▼搴忋佸壋寤鴻繛鎺ャ佸壋寤鴻鍙ュ硅薄銆佹墽琛孲QL璇鍙ャ佸叧闂榪欎簺瀵硅薄銆傚緩絝嬩笌鏁版嵁搴撲箣闂寸殑榪炴帴鍜岄噴鏀捐繛鎺ヤ細鍗犵敤寰堝氱郴緇熺殑鏃墮棿銆傚傛灉鑳藉熻╂墍鏈夌敤鎴峰叡浜榪炴帴錛屼粎浠呭壋寤轟竴嬈¤繛鎺ワ紝璋侀渶瑕佽繛鎺ヨ皝灝變嬌鐢錛岃繖鏍峰彲浠ュぇ澶у噺灝戝壋寤鴻繛鎺ユ墍鍗犵敤鐨勬椂闂淬傝╂墍鏈夌敤鎴峰叡浜榪炴帴錛屽苟涓斿湪闇瑕佺殑鏃跺欏氨鑳藉熶嬌鐢錛屽氨闇瑕佹湁涓撻棬鐨勬満鍒舵潵鍒涘緩榪炴帴錛屾暟鎹搴撹繛鎺ユ睜錛圖ababase Connection Pool錛岀畝縐癉BCP錛夋妧鏈灝辨槸鏉ヨВ鍐寵繖涓闂棰樼殑銆
DBCP鑳藉熼泦涓綆$悊Web搴旂敤涓鐨勬墍鏈夎繛鎺ワ紝鎻愬墠鍒涘緩濂借嫢騫插埌鏁版嵁搴撶殑榪炴帴錛岀敤鎴烽渶瑕佺殑鏃跺欎粠榪炴帴奼犱腑鑾峰彇涓涓榪炴帴錛岀敤瀹屼箣鍚庨噸鏂版妸榪炴帴鏀懼洖榪炴帴奼犮傝佷嬌鐢―BCP錛岄栧厛闇瑕侀厤緗甁NDI鏁版嵁婧愩
閰嶇疆JNDI鏁版嵁婧
DBCP鍙浠ヤ嬌鐢ㄥ緢澶氭妧鏈瀹炵幇錛屾湰涔︿粙緇嶇殑鏄姣旇緝嫻佽岀殑Jakarta-Commons鐨凞BCP銆
浣跨敤榪炴帴奼犵殑鏃跺欙紝瀛樺湪涓涓闂棰樸俉eb搴旂敤蹇呴』鏄懼紡鐨勫叧闂緇撴灉闆嗗硅薄銆佽鍙ュ硅薄銆佽繛鎺ュ硅薄錛屽傛灉鍏抽棴澶辮觸錛屽皢瀵艱嚧榪欎簺瀵硅薄涓嶈兘閲嶇敤銆傚彲鑳借繕浼氬艱嚧鍦ㄨ繛鎺ヤ嬌鐢ㄥ畬鐨勬椂鍊欙紝Web搴旂敤鏃犳硶榪炴帴鍒版暟鎹搴撱
Jakarta-Commons鐨凞BCP鎻愪緵浜嗕竴縐嶆満鍒訛紝鑳藉熻窡韙鍜屾仮澶嶉偅浜涗笉鑳借綆$悊鐨勮繛鎺ャ傝佹兂璺熻釜鍜屾仮澶嶉偅浜涗笉鑳借綆$悊鐨勮繛鎺ワ紝闇瑕佸湪閰嶇疆鏁版嵁婧愮殑鏃跺欏炲姞涓嬮潰鐨勪唬鐮侊細
removeAbandoned="true"
褰撳彲鐢ㄧ殑榪炴帴鏁版瘮杈冨皯鐨勪嬌鐢錛岃繛鎺ユ睜浼氭煡鎵懼苟閲嶅嶄嬌鐢ㄨ繖浜涗笉鑳借綆$悊鐨勮繛鎺ャ傚彲浠ヤ嬌鐢╮emoveAbandonedTimeout灞炴ц劇疆涓涓榪炴帴絀洪棽澶氬皯縐掍箣鍚庤璁や負鏄宸茬粡琚鏀懼純鐨勶紝榛樿ゅ兼槸300縐掋傚傛灉鎯蟲敼涓60縐掞紝鍙浠ヤ嬌鐢ㄤ笅闈㈢殑浠g爜錛
removeAbandonedTimeout="60"
鍙浠ヨ劇疆logAbandoned灞炴ф潵璁板綍娌℃湁姝g『閲婃斁榪炴帴鐨勪唬鐮侊細
logAbandoned="true"
<!--灞閮ㄦ暟鎹搴撹繛鎺ユ睜錛堜袱縐嶆柟娉曪級 Tomcat6.0榪炴帴奼犻厤緗 -->
<!--絎涓縐嶆柟娉-->
閰嶇疆server.xml
server.xml鏂囦歡鍦═omcat瀹夎呯洰褰曠殑conf瀛愮洰褰曚笅銆傚湪</host>涔嬪墠澧炲姞涓嬮潰鐨勪唬鐮侊細
<Context path="/bookstore" docBase="bookstore(欏圭洰鍚嶇О)"
debug="5" reloadable="true" crossContext="true">
<Resource name="jdbc/connpool" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="j2ee"
password="j2ee"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
</Context>
<!--絎浜岀嶆柟娉-->
<Resource name="jdbc/connpool" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30"
maxWait="10000" username="j2ee" password="j2ee" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
鍚勫睘鎬х殑鍚涔夊備笅錛
1 maxActive: 奼犱腑榪炴帴鐨勬渶澶ф暟鐩銆傝佺『淇濇妸mysql鐨勬渶澶ц繛鎺ユ暟澶т簬榪欎釜鍊箋傚傛灉涓0錛屽垯娌℃湁鏈澶ф暟閲忛檺鍒躲
2 maxIdle: 奼犱腑鏈澶х┖闂叉暟鎹搴撹繛鎺ユ暟銆傚傛灉涓-1錛屽垯娌℃湁闄愬埗銆
3 axWait: 絳夊緟涓涓榪炴帴鍙樻垚鍙鐢ㄧ殑鏈闀挎椂闂達紝鍗曚綅鏄痬s錛岃繖涓渚嬪瓙涓鏄10縐掞紝濡傛灉瓚呮椂灝嗘姏鍑哄紓甯搞傚傛灉璁劇疆涓-1錛屽皢鏃犻檺絳夊緟
4 username 鍜 password: 榪炴帴MySQL鏁版嵁搴撶殑鐢ㄦ埛鍚嶅拰鍙d護
5 driverClassName: MySQL鏁版嵁搴撶殑JDBC椹卞姩紼嬪簭鐨勫悕瀛楋紝榪欓噷椹卞姩鐨勫悕瀛楁槸com.mysql.jdbc.Driver銆
6 url: JDBC榪炴帴MySQL鏁版嵁搴撶殑url銆傚弬鏁癮utoReconnect=true紜淇濊繛鎺ユ睜鑳藉熼噸鏂拌繛鎺ワ紝濡傛灉8涓灝忔椂娌℃湁鎿嶄綔錛宮ysql綆$悊鍣ㄤ細鍏抽棴榪炴帴銆
閰嶇疆web.xml
闇瑕佷負褰撳墠搴旂敤閰嶇疆web.xml銆備富瑕佷綔鐢ㄦ槸澹版槑鏁版嵁婧愩備唬鐮佸備笅錛
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
浣跨敤榪炴帴奼犺塊棶鏁版嵁搴
浣跨敤榪炴帴奼犺塊棶鏁版嵁搴撲笌浣跨敤JDBC鐩存帴璁塊棶鏁版嵁搴撶殑榪囩▼鍩烘湰鐩稿悓錛屽彧鏄寰楀埌榪炴帴鐨勬柟寮忎笉鍚屻
涓嬮潰鐨勪唬鐮佸睍紺轟簡鍦ㄤ嬌鐢ㄨ繛鎺ユ睜鐨勬椂鍊欙紝濡傛灉鑾峰彇鍒版暟鎹搴撶殑榪炴帴銆
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
private static DataSource pool;
static {
Context env = null;
try {
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/DBPool");
if(pool==null)
System.err.println("'DBPool' is an unknown DataSource");
} catch(NamingException ne) {
ne.printStackTrace();
}
}
public static DataSource getPool() {
return pool;
}
}
鍏ㄥ矓鏁版嵁搴撹繛鎺ユ睜鐨勯厤緗錛
1錛庡皢鏁版嵁搴撻┍鍔ㄧ▼搴忕殑JAR鏂囦歡鏀懼湪Tomcat鐨 common/lib 涓錛
2錛庡湪server.xml涓璁劇疆鏁版嵁婧愶紝浠Oracle鏁版嵁搴撲負渚嬶紝濡備笅錛
鍦<GlobalNamingResources> </GlobalNamingResources>鑺傜偣涓鍔犲叆錛
<Resource
name="jdbc/connpool"
type="javax.sql.DataSource"
password="j2ee"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="j2ee"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
maxActive="4"/>
灞炴ц存槑錛歯ame錛屾暟鎹婧愬悕縐幫紝閫氬父鍙栤漥dbc/XXX鈥濈殑鏍煎紡錛
type錛屸漥avax.sql.DataSource鈥;
password錛屾暟鎹搴撶敤鎴峰瘑鐮侊紱
driveClassName錛屾暟鎹搴撻┍鍔錛
maxIdle錛屾渶澶х┖闂叉暟錛屾暟鎹搴撹繛鎺ョ殑鏈澶х┖闂叉椂闂淬傝秴榪囩┖闂叉椂闂達紝鏁版嵁搴撹繛
鎺ュ皢琚鏍囪頒負涓嶅彲鐢錛岀劧鍚庤閲婃斁銆傝句負0琛ㄧず鏃犻檺鍒躲
MaxActive錛岃繛鎺ユ睜鐨勬渶澶ф暟鎹搴撹繛鎺ユ暟銆傝句負0琛ㄧず鏃犻檺鍒躲
maxWait 錛屾渶澶у緩絝嬭繛鎺ョ瓑寰呮椂闂淬傚傛灉瓚呰繃姝ゆ椂闂村皢鎺ュ埌寮傚父銆傝句負-1琛ㄧず
鏃犻檺鍒躲
3錛庡湪浣犵殑web搴旂敤紼嬪簭鐨剋eb.xml涓璁劇疆鏁版嵁婧愬弬鑰冿紝濡備笅錛
鍦<web-app></web-app>鑺傜偣涓鍔犲叆錛
<resource-ref>
<description>MySQL DB Connection Pool</description>
<res-ref-name>jdbc/connpool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
瀛愯妭鐐硅存槑錛 description錛屾弿榪頒俊鎮錛
res-ref-name錛屽弬鑰冩暟鎹婧愬悕瀛楋紝鍚屼笂涓姝ョ殑灞炴name錛
res-type錛岃祫婧愮被鍨嬶紝鈥漥avax.sql.DataSource鈥濓紱
res-auth錛屸滳ontainer鈥濓紱
res-sharing-scope錛屸漇hareable鈥濓紱
<!--浠ヤ笅涓鴻劇疆鏁版嵁婧愯繛鎺-->
<!--絎涓縐-->
鍦╰omcat\webapps\myapp\META-INF\context.xml鐨凜ontext涓澧炲姞錛
<ResourceLink name="jdbc/connPool" global="jdbc/connPool" type="javax.sql.DataSource"/>
榪欐牱灝卞彲浠ヤ簡銆
<!--絎浜岀-->
鍦╳eb搴旂敤紼嬪簭鐨刢ontext.xml涓璁劇疆鏁版嵁婧愰摼鎺ワ紝濡備笅錛
鍦<Context></Context>鑺傜偣涓鍔犲叆錛
<ResourceLink
name="jdbc/connpool"
type="javax.sql.DataSource"
global="jdbc/connpool"/>
灞炴ц存槑錛歯ame錛屽悓絎2姝ュ拰絎3姝ョ殑灞炴name鍊礆紝鍜屽瓙鑺傜偣res-ref-name鍊礆紱
type錛屽悓鏍峰彇鈥漥avax.sql.DataSource鈥濓紱
global錛屽悓name鍊箋
鑷蟲わ紝璁劇疆瀹屾垚錛屼笅闈㈡槸濡備綍浣跨敤鏁版嵁搴撹繛鎺ユ睜銆
1錛庡緩絝嬩竴涓榪炴帴奼犵被錛孌BPool.java錛岀敤鏉ュ壋寤鴻繛鎺ユ睜錛屼唬鐮佸備笅錛
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class DBPool {
private static DataSource pool;
static {
Context env = null;
try {
env = (Context) new InitialContext().lookup("java:comp/env");
pool = (DataSource)env.lookup("jdbc/DBPool");
if(pool==null)
System.err.println("'DBPool' is an unknown DataSource");
} catch(NamingException ne) {
ne.printStackTrace();
}
}
public static DataSource getPool() {
return pool;
}
}
2錛庡湪瑕佺敤鍒版暟鎹搴撴搷浣滅殑綾繪垨jsp欏甸潰涓錛岀敤DBPool.getPool().getConnection()錛岃幏寰椾竴涓狢onnection瀵硅薄錛屽氨鍙浠ヨ繘琛屾暟鎹搴撴搷浣滐紝鏈鍚庡埆蹇樹簡瀵笴onnection瀵硅薄璋冪敤close()鏂規硶錛屾敞鎰忥細榪欓噷涓嶄細鍏抽棴榪欎釜Connection錛岃屾槸灝嗚繖涓狢onnection鏀懼洖鏁版嵁搴撹繛鎺ユ睜銆
絎涓夌嶏細tomcat5.0榪炴帴奼犻厤緗
1.鎵撳紑server.xml錛氬湪<Context > </Contex>涓娣誨姞濡備笅榪炴帴奼犲弬鏁拌鍙ワ紝涓涓瀹屾暣鐨勪緥瀛愬備笅錛
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="E:\Projects\ColorRing\wap" path="/wap" reloadable="true">
<Resource name="jdbc/wapOracle" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/wapOracle"> <!--榪欓噷name鐨勫煎繀欏諱笌Resource閲岀殑name鐨勫肩浉鍚-->
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@172.18.51.101:1521:sundb</value> <!--榪炴帴鏁版嵁搴撶殑url-->
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>0</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>username</name> <!--鐢ㄦ埛鍚-->
<value>cms_user</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<name>password</name> <!--瀵嗙爜-->
<value>12345</value>
</parameter>
</ResourceParams>
</Context>
2.鎵撳紑宸ョ▼涓嬬殑WEB-INF/web.xml,娣誨姞濡備笅閮ㄥ垎錛
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/wapOracle</res-ref-name> <!--榪欓噷name鐨勫間篃蹇呴』涓巗erver.xml涓鐨凴esource閲岀殑
name鐨勫肩浉鍚-->
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.鐒跺悗鍐欒繛鎺ユ暟鎹搴撶殑璇鍙ワ細
package util;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class OracleDB {
String url_ = "192.168.1.41:1521:gxcring";
//String url_ = "172.18.51.101:1521:SUNDB";
String id_ = "cms_user";
String pass_ = "12345";
Connection conn = null;
Statement stmt = null;
public OracleDB() {
try {
//Class.forName("oracle.jdbc.driver.OracleDriver");
//conn = DriverManager.getConnection("jdbc:oracle:thin:@" + url_, id_, pass_);
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource ds = (DataSource) envContext.lookup("jdbc/wapOracle"); //娉ㄦ剰榪欓噷鐨勫悕瀛椾笌閰嶇疆鏂囦歡
閲岀殑鍚嶅瓧鐩稿悓灝辮屼簡銆
conn = ds.getConnection();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
} catch (NamingException ne) {
System.out.println("Initial DataSource error.");
ne.printStackTrace();
} catch (SQLException e) {
System.out.println("ORACLE: " + e);
e.printStackTrace();
}
}
/**
* 榪斿洖Connction瀵硅薄
* @param none
* @return Connction
*/
public Connection getConn() {
return this.conn;
}
}
『叄』 Java資料庫連接池的幾種配置方法(以MySQL數
連接先建立一些連接,並且這些連接允許共享,因此這樣就節省了每次連接的時間開銷。Mysql資料庫為例,連接池在Tomcat中的配置與使用。
1、創建資料庫Student,表student
2、配置server.xml文件。Tomcat安裝目錄下conf中server.xml文件。
<GlobalNamingResources>
<Resource
name="jdbc/DBPool"
type="javax.sql.DataSource"
password=""
driverClassName="com.mysql.jdbc.Driver"
maxIdle="2"
maxWait="5000"
username="root"
url="jdbc:mysql://localhost:3306/student"
maxActive="3"
/>
</GlobalNamingResources>
name:指定連接池的名稱
type:指定連接池的類,他負責連接池的事務處理
url:指定要連接的資料庫
driverClassName:指定連接資料庫使用的驅動程序
username:資料庫用戶名
password:資料庫密碼
maxWait:指定最大建立連接等待時間,如果超過此時間將接到異常
maxIdle:指定連接池中連接的最大空閑數
maxActive:指定連接池最大連接數
3、配置web.xml文件。
<web-app>
<resource-ref>
<description>mysql資料庫連接池配置</description>
<res-ref-name>jdbc/DBPool</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</web-app>
4、配置context.xml文件
與server.xml文件所在的位置相同。
<Context>
<ResourceLink
name="jdbc/DBPool"
type="javax.sql.DataSource"
global="jdbc/DBPool"
/>
</Context>
5、測試
DataSource pool = null;
Context env = null;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try{
env = (Context)new InitialContext().lookup("java:comp/env");
//檢索指定的對象,返回此上下文的一個新實例
pool = (DataSource)env.lookup("jdbc/DBPool");
//獲得資料庫連接池
if(pool==null){out.printl("找不到指定的連接池!");}
con = pool.getConnection();
st = con.createStatement();
rs = st.executeQuery("select * from student");
}catch(Exception ex){out.printl(ne.toString());}
『肆』 tomcat資料庫連接池出現異常
第一步,把驅動有放在了tomcat/common/lib下面,第二步修改tomcat/conf/context.xml。 代碼如下
<Resource name="jdbc/bank" auth="Container"
type="javax.sql.DataSource" maxActive="100"
maxIdle="30" maxWait="10000" username="sa"
password="sa"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=bank"
/>
然後帶連接類里 Context ic = new InitialContext();
DataSource ds = (DataSource)ic.lookup("java:comp/env/jdbc/food");
conn = ds.getConnection();
獲得連接,然後就可以用了
『伍』 java中建立資料庫連接池,有哪幾個步驟
配置包括3步:1.讓tomcat容器啟動創建資料庫連接池2.在某個項目中關聯資料庫連接池,3.取得資料庫連接池並使用。使用包括,當拿到資料庫連接後,可以通過2種方式來使用,1.使用jstl的標簽,2.封裝成返回connection的方法。
1.讓tomcat容器啟動創建資料庫連接池:
配置的地方很多,根據不同的需求配置在不同的位置,但原理就一個,就是要配置一個Context標簽下有一個resource標簽。
a.在Tomcat 6.0\conf\Catalina\localhost目錄下新建一個跟項目名一樣的*.xml文件
b.數據源設置的名字(JNDI) auth:表示數據源由誰管理,這兒是tomcat容器本身 type:類型
c.驅動設置,該驅動放在tomcat的lib下或者放在該站點的lib下設置連接資料庫字元串,url設置連接資料庫的用戶名設置資料庫連接的密碼-->
2.在某個項目中關聯資料庫連接池,在web.xml添加代碼:
<!--關聯jndi資料庫連接池 -->
3.使用jstl標簽測試數據源是否配置成功
4.在jsp中通過java代碼測試:
5.封裝成bean對外提供得到資料庫連接池連接的方式: