在 $CATALINA_HOME/conf/server.xml 的 <GlobalNamingResources> 區塊宣告連接池:
<Resource name="jdbc/mysql" type="javax.sql.DataSource" auth="Container">
<ResourceParams name="jdbc/mysql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter><name>maxWait</name><value>5000</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>10</value></parameter>
<parameter><name>username</name><value>shopadm</value></parameter>
<parameter><name>password</name><value>123</value></parameter>
<parameter><name>url</name><value>jdbc:mysql://localhost/shopdb?useUnicode=true&characterEncoding=gb2312</value></parameter>
<parameter><name>driverClassName</name><value>com.mysql.jdbc.Driver</value></parameter>
</ResourceParams>
</Resource>
在 web.xml 宣告資源參考:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在 $CATALINA_HOME/conf/Catalina/localhost/shopping.xml 連結全域資源:
<Context ...>
<ResourceLink name="jdbc/mysql" type="javax.sql.DataSource" global="jdbc/mysql"/>
</Context>
直接在 $CATALINA_HOME/conf/Catalina/localhost/shopping.xml 定義資源:
<Context>
<Resource name="jdbc/mysql" type="javax.sql.DataSource" auth="Container">
<ResourceParams name="jdbc/mysql">
<parameter><name>factory</name><value>org.apache.commons.dbcp.BasicDataSourceFactory</value></parameter>
<parameter><name>maxWait</name><value>5000</value></parameter>
<parameter><name>maxActive</name><value>20</value></parameter>
<parameter><name>maxIdle</name><value>10</value></parameter>
<parameter><name>username</name><value>shopadm</value></parameter>
<parameter><name>password</name><value>123</value></parameter>
<parameter><name>url</name><value>jdbc:mysql://localhost/shopdb?useUnicode=true&characterEncoding=gb2312</value></parameter>
<parameter><name>driverClassName</name><value>com.mysql.jdbc.Driver</value></parameter>
</ResourceParams>
</Resource>
</Context>
在應用程式的 WEB-INF/web.xml 加入資源參考:
<web-app version="2.4" xmlns="https://java.sun.com/xml/ns/j2ee" ...>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MySQL</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
maxActive:最大活躍連接數maxIdle:最大閒置連接數maxWait:取得連接最長等待毫秒數factory:DBCP 工廠類,負責建立實際連接池Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");
DataSource ds = (DataSource) envCtx.lookup("jdbc/mysql");
Connection conn = ds.getConnection();