Tomcat下配置MySQL資料庫連接池

來源:互聯網
上載者:User
mysql|資料|資料庫|資料庫連接
經過大半天的實踐和摸索,終於在Tomcat下成功地配置MySQL的資料庫連接池。總結如下:

1.在$CATALINA_HOME/conf/server.xml中添加配置資訊,聲明串連池的具體資訊,新增內容如下:

<!--聲明串連池-->

<Resource name="jdbc/mysql"auth="Container" type="javax.sql.DataSource"/>

<!-- 對串連池的參數進行設定 -->

<ResourceParamsname="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>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&charact-erEncoding=gb2312</value>

     </parameter>

     <parameter>

       <name>driverClassName</name>

       <value>com.mysql.jdbc.Driver</value>

     </parameter>

     <parameter>

       <name>maxIdle</name>

       <value>10</value>

     </parameter>     

   </ResourceParams>

2. 在$CATALINA_HOME/conf/web.xml的</web-app>前添加如下資訊:

<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>

其中<res-ref-name>中的參數名必須和server.xml中聲明的串連名一樣。

 

3. 在$CATALINA_HOME/conf/catalina/localhost目錄下找到需要進行資料庫連接的當前程式的配置資訊,比如這裡是shopping.xml,在這個檔案中添加如下資訊:

<Context …>

     …

<ResourceLink name=”jdbc/mysql” global=”jdbc/mysql”type=”javax.sql.DataSource”/>

     …

</Context>

 

大功告成!

 

在此基礎上,參考Tomcat官方網站的使用者手冊,摸索出另外一種配置串連池的方法,這個方法不需要對server.xml進行修改,只要對需要使用到串連池的程式的配置文檔進行修改就可以了。方法如下:

1.$CATALINA_HOME/conf/catalina/localhost目錄下找到需要資料庫連接池的程式的配置文檔,此處是shopping.xml。在<Context></Context>之間添加如下資訊,聲明一個資料庫連接池:

<Resource name="jdbc/mysql"auth="Container" type="javax.sql.DataSource"/>

 

 <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>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>

     <parameter>

       <name>maxIdle</name>

       <value>10</value>

     </parameter>

     <parameter>

       <name>username</name>

       <value>shopadm</value>

     </parameter>

   </ResourceParams>

這裡的參數和上一種方法中添加到server.xml裡的資訊幾乎是完全一樣的。

 

2.在對應程式的WEB-INF下建立一個web.xml文檔,添加如下資訊:

<?xml version="1.0"encoding="ISO-8859-1"?>

 

<web-appxmlns="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

     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"

   version="2.4">

    <resource-ref>

        <description>DBConnection</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>

關鍵是斜體字的部分,指向前面聲明的串連池。

 

這兩種方法經測試都能配置成功,顯然他們的“範圍”是不一樣的。另外,配置以後內部的引用以及運行機制,留待以後再深入研究。接下來先開始學習資料庫連接池和JSP的協同工作。


相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。