世界因你而精彩  
          日歷
          <2006年6月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678
          統計
          • 隨筆 - 169
          • 文章 - 1
          • 評論 - 138
          • 引用 - 0

          導航

          常用鏈接

          留言簿(9)

          隨筆分類(163)

          隨筆檔案(154)

          文章檔案(1)

          新聞檔案(1)

          相冊

          收藏夾(1)

          個人雜雜

          友情鏈接

          自學考試

          資料搜索

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 359379
          • 排名 - 153

          最新評論

          閱讀排行榜

          評論排行榜

           

          以下是轉帖:

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

           

          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放回數據庫連接池。

          也是可以直接連的:
          如連接oracle
          public class ConnectionProvider
          {
           public static DataSource ds;

           static
           {
            DriverAdapterCPDS cpds = new DriverAdapterCPDS();

            try
            {
             cpds.setDriver("oracle.jdbc.driver.OracleDriver");
            }
            catch (ClassNotFoundException e)
            {
             String msg = "Could not find driver in the classpath ";
             System.out.println(msg);
             throw new RuntimeException(msg);
            }
                         
            cpds.setUrl("jdbc:oracle:thin:@192.168.0.167:1521:epcora");
            cpds.setUser("71c");
            cpds.setPassword("123456");

            Jdbc2PoolDataSource tds = new Jdbc2PoolDataSource();
            tds.setConnectionPoolDataSource(cpds);
            tds.setDefaultMaxActive(20);
            tds.setDefaultMaxWait(50);
            
            ds = tds;
           }
          }
          這樣就不用在server.xml,web.xml設置了。

          還是若用eclipse跟蹤bug,設置連接數據庫則須在“Java構建路徑”-“庫”里添加上
          數據庫驅動程序的JAR文件即可。

          posted on 2006-06-22 15:18 張秀蘭 閱讀(4814) 評論(0)  編輯  收藏 所屬分類: 學習園地資料查找
           
          Copyright © 張秀蘭 Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 个旧市| 枣庄市| 禄劝| 左云县| 肇州县| 峨边| 明溪县| 江永县| 青川县| 双鸭山市| 陆丰市| 安多县| 东莞市| 廉江市| 丰城市| 保靖县| 柳河县| 龙江县| 沈阳市| 曲沃县| 吉隆县| 绥滨县| 久治县| 大足县| 顺昌县| 白河县| 上栗县| 兴仁县| 津南区| 商丘市| 吉首市| 莫力| 平遥县| 浠水县| 阆中市| 庄浪县| 金昌市| 蕉岭县| 淮阳县| 正定县| 东乡|