qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問(wèn) http://qaseven.github.io/

          怎樣配置Tomcat6.0的數(shù)據(jù)庫(kù)連接池詳解

           Tomcat自帶數(shù)據(jù)庫(kù)連接池,但是需要進(jìn)行相應(yīng)的配置才能使用Tomcat的數(shù)據(jù)庫(kù)連接池。此文只針對(duì)Tomcat6.0進(jìn)行配置。

            1.在自己的項(xiàng)目下的META-INF(注意:不是WEB-INF,我看網(wǎng)上很多人都弄錯(cuò)了)下面新建一個(gè)context.xml文件,文件內(nèi)容為:

          <?xml version="1.0" encoding="UTF-8"?>
          <Context>
          <WatchedResource>WEB-INF/web.xml</WatchedResource>   //監(jiān)聽資源
          <Resource
          name="myoracle"                //給資源隨便起一個(gè)名字,用于在程序中調(diào)用。
          auth="Container"                                  //
          type="javax.sql.DataSource"       //資源類型
          driverClassName="oracle.jdbc.OracleDriver" //加載驅(qū)動(dòng),每種數(shù)據(jù)庫(kù)的方式不同,自己參考資料。
          url="jdbc:oracle:thin:@localhost:1521:ICSS" //連接字符串,相信大家不陌生。
          username="jsp"            //訪問(wèn)數(shù)據(jù)庫(kù)用戶名
          password="jsp"                          //訪問(wèn)數(shù)據(jù)庫(kù)的密碼
          maxActive="200"                      //最大可以有200名用戶連接數(shù)據(jù)源
          maxIdle="10"                              //如果沒(méi)有用戶連接,空出10個(gè)連接等待用戶連接
          maxWait="5000"/> //如果已連接用戶5000秒內(nèi)沒(méi)有再次連接數(shù)據(jù)源,則放棄此連接
          </Context>

            2.如果不是用的myeclipse自帶的tomcat,則要到那個(gè)tomcat下面conf\Catalina\localhost刪除host-manager.xml和manager.xml。

            3.然后就在servlet里面調(diào)用了,調(diào)用方法:

            需要用到的引用:

          import javax.sql.DataSource;
          import javax.naming.InitialContext;
          import java.sql.Connection;

          InitialContext initCtx = new InitialContext();  //
          //下面的” java:comp/env”是固定的,”myoracle”是在context.xml中指定的name。
          DataSource ds = (DataSource)initCtx.lookup("java:comp/env/myoracle");
          Connection conn = ds.getConnection();  //獲取連接。


            附加:

            1.Sql server 的context.xml配置:

          <Resource
          name="名字"
          type="javax.sql.DataSource"
          maxActive="100"
          maxIdle="30"
          maxWait="5000"
          username="用戶名"
          password="密碼"
          driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
          url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=數(shù)據(jù)庫(kù)名"
          /

           2.oracle的context.xml配置:(已經(jīng)在上面展示過(guò)了)

            3.mysql的context.xml配置:

          <Resource name="名字" 
          auth="Container" 
          type="javax.sql.DataSource" //資源類型 
          driverClassName="org.gjt.mm.mysql.Driver" 
          url="jdbc:mysql://localhost/數(shù)據(jù)庫(kù)名"  
          username="用戶名" 
          password="密碼" 
          maxActive="100" //最大連結(jié)數(shù) 
          maxIdle="30" //最大空閑時(shí)間,0為無(wú)限制 
          maxWait="10000"/> //建立連接的的最大等待時(shí)間

            ---------------------以下已經(jīng)實(shí)現(xiàn)過(guò)----------------------------------------

            以下是我工程中用到的一個(gè)實(shí)例(sql2005):

            context.xml內(nèi)容:

          <?xml version="1.0" encoding="GBK"?>
          <Context>
          <WatchedResource>WEB-INF/web.xml</WatchedResource>
          <!--2000:driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"-->
          <!--2000:url="jdbc:microsoft:sqlserver://192.168.0.15:1433;DatabaseName=XR-2000" -->
          <!--2005:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"-->
          <!--2005:url="jdbc:sqlserver://localhost:1433;DatabaseName=XR-2000" -->
          <Resource
          name="jdbc/sql"
          auth="Container"
          type="javax.sql.DataSource"
          driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
          url="jdbc:sqlserver://localhost:1433;DatabaseName=XR-2000"
          username="sa"
          password="123456"
          maxActive="200"
          maxIdle="50"
          maxWait="-1"/>
          </Context>

            調(diào)用:

          Context ctx = null;
          try {
          ctx = new InitialContext();
          } catch (NamingException e1) {
          }

          DataSource ds = null;
          try {
          ds = (DataSource) ctx.lookup("java:comp/env/jdbc/sql");
          } catch (NamingException e2) {
          }

          Connection conn = null;
          try {
          conn = ds.getConnection();
          } catch (SQLException e3) {
          }

          Statement stmt = null;
          try {
          stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
          ResultSet.CONCUR_UPDATABLE);//紅色部分這樣定義就可以使用rs.last()方法了
          } catch (SQLException e) {
          }



          posted on 2013-08-06 10:18 順其自然EVO 閱讀(259) 評(píng)論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫(kù)

          <2013年8月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 怀宁县| 邯郸县| 准格尔旗| 科技| 泰宁县| 临潭县| 郎溪县| 永胜县| 新巴尔虎左旗| 三明市| 蒙阴县| 开远市| 邮箱| 唐山市| 依兰县| 东丰县| 兴宁市| 上栗县| 泗洪县| 瑞金市| 穆棱市| 台中市| 蒲江县| 花垣县| 项城市| 凤山市| 稻城县| 晋江市| 静宁县| 吉安市| 扶风县| 霍林郭勒市| 丰宁| 于都县| 嘉禾县| 卓尼县| 大兴区| 乌拉特中旗| 齐河县| 新泰市| 高青县|