在Tomcat中使用DBCP数据源

首先您必須將JDBC驅動程式放置在Tomcat的common/lib下,然後編輯conf/server.xml,在<Host>與</Host>之間加入以下的內容:

  • server.xml
...
<!-- 應用程式目錄是JSP --> 
<Context path="/JSP" docBase="JSP"> 
    <!-- 使用資料庫名稱是 GUESTBOOK --> 
    <Resource name="jdbc/GUESTBOOK" scope="Shareable" 
              type="javax.sql.DataSource"/> 
    <ResourceParams name="jdbc/GUESTBOOK"> 
        <parameter> 
            <name>factory</name> 
            <value>
               org.apache.commons.dbcp.BasicDataSourceFactory
            </value> 
        </parameter>
 
        <!-- DBCP database connection settings --> 
        <!-- JDBC URL --> 
        <parameter> 
           <name>url</name> 
           <value>jdbc:mysql://localhost/GUESTBOOK</value> 
        </parameter> 
        <!-- JDBC驅動程式 --> 
        <parameter> 
            <name>driverClassName</name> 
            <value>com.mysql.jdbc.Driver</value> 
        </parameter> 
        <!-- 資料庫使用者與密碼 --> 
        <parameter> 
            <name>username</name> 
            <value>caterpillar</value> 
        </parameter> 
        <parameter> 
            <name>password</name> 
            <value>123456</value> 
        </parameter>
 
        <!-- DBCP connection pooling options --> 
        <!-- 等待Connection的時間,單位ms,-1表不限制 --> 
        <parameter> 
            <name>maxWait</name> 
            <value>3000</value> 
        </parameter> 
        <!-- 連接池中最多可idle的Connection數,
            也就是最少的Connection數,0表不限制 --> 
        <parameter> 
            <name>maxIdle</name> 
            <value>10</value> 
        </parameter> 
        <!-- 連接池至多的Connection數,0表示不限制 --> 
        <parameter> 
            <name>maxActive</name> 
            <value>100</value> 
        </parameter> 
    </ResourceParams> 
</Context> 
...


設定好後,接下來設定Web應用程式的web.xml,加入以下的內容:

  • web.xml
... 
    <resource-ref> 
        <description>JNDI JDBC DataSource</description> 
        <res-ref-name>jdbc/GUESTBOOK</res-ref-name> 
        <res-type>javax.sql.DataSource</res-type> 
        <res-auth>Container</res-auth> 
    </resource-ref> 
... 


這樣就可以使用DBCP連接池的功能了,可以這麼取Connection:

Context initContext = new InitialContext();
Context envContext  = 
           (Context)initContext.lookup("java:/comp/env");
DataSource ds =
           (DataSource)envContext.lookup("jdbc/GUESTBOOK");
Connection conn = ds.getConnection();

 
下面這個JSP程式是個簡單測試透過連接池取得連線的範例:

  • test.jsp
<%@page import="java.sql.*"%> 
<%@ page import="javax.sql.*" %> 
<%@ page import="javax.naming.*" %> 
<%@page contentType="text/html;charset=big5"%> 
<% 
    try { 
        Context initContext = new InitialContext(); 
        Context envContext  = 
            (Context)initContext.lookup("java:/comp/env"); 
        DataSource ds = 
            (DataSource)envContext.lookup("jdbc/GUESTBOOK"); 
        Connection conn = ds.getConnection(); 
 
        if(!conn.isClosed()) 
            out.println("資料庫連線測試成功!"); 
        conn.close(); 
    } 
    catch(SQLException e) { 
        out.println(e.toString()); 
    }
%> 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值