Tomcat 的資料庫連接池設定與應用

來源:互聯網
上載者:User
資料|資料庫|資料庫連接

1.將資料庫驅動程式的JAR檔案放在Tomcat的 common/lib 中;

2.在server.xml中設定資料來源,以MySQL資料庫為例,如下:
在<GlobalNamingResources> </GlobalNamingResources>節點中加入,
      <Resource
      name="jdbc/DBPool"
      type="javax.sql.DataSource"
      password="root"
      driverClassName="com.mysql.jdbc.Driver"
      maxIdle="2"
      maxWait="5000"
      username="root"
      url="jdbc:mysql://127.0.0.1:3306/test"
      maxActive="4"/>
   屬性說明:name,資料來源名稱,通常取”jdbc/XXX”的格式;
            type,”javax.sql.DataSource”;
            password,資料庫使用者密碼;
            driveClassName,資料庫驅動;
            maxIdle,最大空閑數,資料庫連接的最大空閑時間。超過空閑時間,資料庫連
                     接將被標記為不可用,然後被釋放。設為0表示無限制。
            MaxActive,串連池的最大資料庫連接數。設為0表示無限制。
            maxWait ,最大建立串連等待時間。如果超過此時間將接到異常。設為-1表示
                     無限制。

3.在你的web應用程式的web.xml中設定資料來源參考,如下:
  在<web-app></web-app>節點中加入,
  <resource-ref>
    <description>MySQL DB Connection Pool</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>
  子節點說明: description,描述資訊;
               res-ref-name,參考資料源名字,同上一步的屬性name;
               res-type,資源類型,”javax.sql.DataSource”;
               res-auth,”Container”;
               res-sharing-scope,”Shareable”;

4.在web應用程式的context.xml中設定資料來源連結,如下:
  在<Context></Context>節點中加入,
  <ResourceLink
   name="jdbc/DBPool" 
   type="javax.sql.DataSource" 
   global="jdbc/DBPool"/>
   屬性說明:name,同第2步和第3步的屬性name值,和子節點res-ref-name值;
             type,同樣取”javax.sql.DataSource”;
             global,同name值。
 
至此,設定完成,下面是如何使用資料庫連接池。
1.建立一個串連池類,DBPool.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(),獲得一個Connection對象,就可以進行資料庫操作,最後別忘了對Connection對象調用close()方法,注意:這裡不會關閉這個Connection,而是將這個Connection放回資料庫連接池。



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。