<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    導(dǎo)航

    常用鏈接

    留言簿(9)

    隨筆分類(163)

    隨筆檔案(154)

    文章檔案(1)

    新聞檔案(1)

    相冊

    收藏夾(1)

    個(gè)人雜雜

    友情鏈接

    自學(xué)考試

    資料搜索

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 360131
    • 排名 - 153

    最新評論

    閱讀排行榜

    評論排行榜

     

    以下是轉(zhuǎn)帖:

    Tomcat 的數(shù)據(jù)庫連接池設(shè)置與應(yīng)用

     

    1.將數(shù)據(jù)庫驅(qū)動程序的JAR文件放在Tomcat的 common/lib 中;

    2.在server.xml中設(shè)置數(shù)據(jù)源,以MySQL數(shù)據(jù)庫為例,如下:
    在<GlobalNamingResources> </GlobalNamingResources>節(jié)點(diǎn)中加入,
          <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,數(shù)據(jù)源名稱,通常取”jdbc/XXX”的格式;
                type,”javax.sql.DataSource”;
                password,數(shù)據(jù)庫用戶密碼;
                driveClassName,數(shù)據(jù)庫驅(qū)動;
                maxIdle,最大空閑數(shù),數(shù)據(jù)庫連接的最大空閑時(shí)間。超過空閑時(shí)間,數(shù)據(jù)庫連
                         接將被標(biāo)記為不可用,然后被釋放。設(shè)為0表示無限制。
                MaxActive,連接池的最大數(shù)據(jù)庫連接數(shù)。設(shè)為0表示無限制。
                maxWait ,最大建立連接等待時(shí)間。如果超過此時(shí)間將接到異常。設(shè)為-1表示
                         無限制。

    3.在你的web應(yīng)用程序的web.xml中設(shè)置數(shù)據(jù)源參考,如下:
      在<web-app></web-app>節(jié)點(diǎn)中加入,
      <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>
      子節(jié)點(diǎn)說明: description,描述信息;
                   res-ref-name,參考數(shù)據(jù)源名字,同上一步的屬性name;
                   res-type,資源類型,”javax.sql.DataSource”;
                   res-auth,”Container”;
                   res-sharing-scope,”Shareable”;

    4.在web應(yīng)用程序的context.xml中設(shè)置數(shù)據(jù)源鏈接,如下:
      在<Context></Context>節(jié)點(diǎn)中加入,
      <ResourceLink
       name="jdbc/DBPool" 
       type="javax.sql.DataSource" 
       global="jdbc/DBPool"/>
       屬性說明:name,同第2步和第3步的屬性name值,和子節(jié)點(diǎn)res-ref-name值;
                 type,同樣取”javax.sql.DataSource”;
                 global,同name值。
     
    至此,設(shè)置完成,下面是如何使用數(shù)據(jù)庫連接池。
    1.建立一個(gè)連接池類,DBPool.java,用來創(chuàng)建連接池,代碼如下:
    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.在要用到數(shù)據(jù)庫操作的類或jsp頁面中,用DBPool.getPool().getConnection(),
    獲得一個(gè)Connection對象,就可以進(jìn)行數(shù)據(jù)庫操作,
    最后別忘了對Connection對象調(diào)用close()方法,
    注意:這里不會關(guān)閉這個(gè)Connection,而是將這個(gè)Connection放回?cái)?shù)據(jù)庫連接池。

    也是可以直接連的:
    如連接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設(shè)置了。

    還是若用eclipse跟蹤bug,設(shè)置連接數(shù)據(jù)庫則須在“Java構(gòu)建路徑”-“庫”里添加上
    數(shù)據(jù)庫驅(qū)動程序的JAR文件即可。

    posted on 2006-06-22 15:18 張秀蘭 閱讀(4822) 評論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)園地資料查找
     
    Copyright © 張秀蘭 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 免费精品一区二区三区在线观看| 30岁的女人韩剧免费观看| 亚洲电影唐人社一区二区| 亚洲黄片手机免费观看| 成年女人色毛片免费看| 老汉精品免费AV在线播放| 一级做受视频免费是看美女| 亚洲第一街区偷拍街拍| 亚洲第一页中文字幕| 久久亚洲精品中文字幕三区| 亚洲免费日韩无码系列 | 日韩免费无砖专区2020狼| 中文字幕视频免费| 国产免费AV片在线观看| 美女啪啪网站又黄又免费| 亚洲一区二区三区四区视频| 亚洲天堂视频在线观看| 久久亚洲国产中v天仙www| 在线A亚洲老鸭窝天堂| 亚洲高清免费视频| 免费看国产精品麻豆| 女人张开腿给人桶免费视频| 无码国产精品一区二区免费虚拟VR| 久热免费在线视频| a级成人毛片免费视频高清| 国产精品免费看久久久香蕉| 黄色大片免费网站| 日韩亚洲人成在线综合| 亚洲暴爽av人人爽日日碰| 国产99在线|亚洲| 亚洲精品午夜国产va久久| 亚洲乱码中文论理电影| 亚洲成人福利网站| 亚洲一区二区三区深夜天堂| 亚洲国产精品综合福利专区| 亚洲H在线播放在线观看H| 亚洲人成在线免费观看| 亚洲一卡2卡3卡4卡国产网站| 97久久国产亚洲精品超碰热| 亚洲依依成人亚洲社区| 亚洲av无码专区在线观看亚|