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

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

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

1.將數(shù)據(jù)庫驅(qū)動(dòng)程序的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ū)動(dòng);
            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對(duì)象,就可以進(jìn)行數(shù)據(jù)庫操作,最后別忘了對(duì)Connection對(duì)象調(diào)用close()方法,注意:這里不會(huì)關(guān)閉這個(gè)Connection,而是將這個(gè)Connection放回?cái)?shù)據(jù)庫連接池。
 

問題未解決?付費(fèi)解決問題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當(dāng)無敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部內(nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » Tomcat 的數(shù)據(jù)庫連接池設(shè)置與應(yīng)用

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開發(fā)與維護(hù);網(wǎng)站開發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情