熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Tomcat 的數據庫連接池設置與應用

2013-11-23 20:42:08  來源: Java開源技術 
.將數據庫驅動程序的JAR文件放在Tomcat的 common/lib 中

.在serverxml中設置數據源以MySQL數據庫為例如下
在<GlobalNamingResources> </GlobalNamingResources>節點中加入
      <Resource
      name=jdbc/DBPool
      type=javaxsqlDataSource
      password=root
      driverClassName=commysqljdbcDriver
      maxIdle=
      maxWait=
      username=root
      url=jdbc:mysql://:/test
      maxActive=/>
   屬性說明name數據源名稱通常取jdbc/XXX的格式
            typejavaxsqlDataSource;
            password數據庫用戶密碼
            driveClassName數據庫驅動
            maxIdle最大空閒數數據庫連接的最大空閒時間超過空閒時間數據庫連
                     接將被標記為不可用然後被釋放設為表示無限制
            MaxActive連接池的最大數據庫連接數設為表示無限制
            maxWait 最大建立連接等待時間如果超過此時間將接到異常設為表示
                     無限制

.在你的web應用程序的webxml中設置數據源參考如下
  在<webapp></webapp>節點中加入
  <resourceref>
    <description>MySQL DB Connection Pool</description>
    <resrefname>jdbc/DBPool</resrefname>
    <restype>javaxsqlDataSource</restype>
    <resauth>Container</resauth>
    <ressharingscope>Shareable</ressharingscope>
 </resourceref>
  子節點說明 description描述信息
               resrefname參考數據源名字同上一步的屬性name
               restype資源類型javaxsqlDataSource
               resauthContainer
               ressharingscopeShareable

.在web應用程序的contextxml中設置數據源鏈接如下
  在<Context></Context>節點中加入
  <ResourceLink
   name=jdbc/DBPool 
   type=javaxsqlDataSource 
   global=jdbc/DBPool/>
   屬性說明name同第步和第步的屬性name值和子節點resrefname值
             type同樣取javaxsqlDataSource
             global同name值
 
至此設置完成下面是如何使用數據庫連接池
.建立一個連接池類DBPooljava用來創建連接池代碼如下
import javaxnamingContext;
import javaxnamingInitialContext;
import javaxnamingNamingException;
import javaxsqlDataSource;

public class DBPool {
    private static DataSource pool;
    static {
         Context env = null;
          try {
              env = (Context) new InitialContext()lookup(java:comp/env);
              pool = (DataSource)envlookup(jdbc/DBPool);
              if(pool==null) 
                  Systemerrprintln(DBPool is an unknown DataSource);
               } catch(NamingException ne) {
                  neprintStackTrace();
          }
      }
    public static DataSource getPool() {
        return pool;
    }
}

.在要用到數據庫操作的類或jsp頁面中用DBPoolgetPool()getConnection()獲得一個Connection對象就可以進行數據庫操作最後別忘了對Connection對象調用close()方法注意這裡不會關閉這個Connection而是將這個Connection放回數據庫連接池

From:http://tw.wingwit.com/Article/program/Java/ky/201311/28920.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.