posts - 10, comments - 9, trackbacks - 0, articles - 17

          關(guān)于java連接池

          Posted on 2008-11-24 17:25 wesley1987 閱讀(833) 評論(0)  編輯  收藏 所屬分類: struts學(xué)習(xí)項(xiàng)目
          1.為工程配置tomcat連接池:
          配置server.xml (tomcat/conf/server.xml)在</Host>前面加上
          <Context docBase="myWebProject"" path="/myWebProject" reloadable="true">
               <Resource name="連接池名字 例:jdbc/oracle" 
                              auth="Container" 
                              type="javax.sql.DataSource"
                              factory="org.apache.common.dbcp.BasicDataSourceFactory"
                              driverClassName="oracle.jdbc.driver.OracleDriver"
                              url="jdbc:oracle:thin:@127.0.0.1:1521:NEUSOFT"
                              username="" 
                              password="" 
                              maxActive="5000"
                               maxIdle="10" 
                              maxWait="-1"/>
          </Context>
          參數(shù)說明:
          i.JNDI Name::注冊到JNDI樹上的名字(可以隨便寫)
          ii. Data Source URL:連接數(shù)據(jù)庫的URL
          iii. JDBC Driver Class:Jbdc數(shù)據(jù)庫的驅(qū)動名稱
          iv. User Name:訪問數(shù)據(jù)庫的用戶
          v. Password:訪問數(shù)據(jù)庫的密碼
          vi. Max. Active Connections:最大活躍連接數(shù),指同時(shí)可以有多少個(gè)連接,設(shè)置為0沒有限制
          vii. Max. Idle Connections:最大空閑連接數(shù),表示沒有數(shù)據(jù)庫連接時(shí),連接池也必須保持最大空閑連接數(shù),設(shè)置為0沒有限制
          viii. Max. Wait for Connection:連接建立等待時(shí)間,單位為毫秒,設(shè)置為-1無限制
          ix. Validation Query::此參數(shù)用來查詢池中的空閑連接(可以不配置)

          需要把 jdbc的包導(dǎo)入 tomcat的lib中 (  tomcat6/lib   tomcat5.x/commen/lib)
          oracle的包在oracle92/jdbc/classes12.jar
          ms sqlserver要用到的三個(gè)驅(qū)動包

          2。連接語句
               Context initCtx = new InitialContext();
             javax.sql.DataSource ds = (javax.sql.DataSource)initCtx.lookup("java:comp/env/連接池名字");
             conn = ds.getConnection();

          jsp中:(不推薦)
           :<sql:setDataSource dataSource="連接池名字" var="myOracleDB"/> 

                 <sql:query sql="select * from channel" dataSource="${myOracleDB}" var="channelRS"/>
                      <c:forEach items="${channelRS.rowsByIndex}" var="channel">
                              ${channel[1]}
                      </c:forEach>

          使用連接池實(shí)現(xiàn)的連接,只能在web服務(wù)器中運(yùn)行。不能run。
          /*非連接池的一般JDBC使用*/
          Class.forName(driver);
          Connection conn = DriverManager.getConnection(url,name,password);
          stmt = conn.createStatement();
             rs = stmt.executeQuery(sql);
          ORACLE:driver :oracle.jdbc.driver.OracleDriver
                                  url:   jdbc:oracle:thin:@IP:1521:數(shù)據(jù)庫名
                                 包: oracle92/jdbc/classes12.jar
          Sqlserver:driver:com.microsoft.jdbc.sqlserver.SQLServerDriver
                          url:jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=數(shù)據(jù)庫名

          3. 連接池還有‘對所有工程配置tomcat連接池’和‘在struts中 配置struts-config.xml以配置連接池’。
                http://blog.csdn.net/angel_bear/archive/2006/06/09/784573.aspx (by angelbear)里有以上3種連接池的配置方法。


          后補(bǔ) 疑問:factory="org.apache.common.dbcp.BasicDataSourceFactory" 這句話回引起一個(gè) class cannt find 的異常,尚未解決。
              大致原因可能是缺少commons-dbcp-1.2.1和commons-pool-1.3的包,此包在tomcat6中未發(fā)現(xiàn),tomcat5/commen/lib下有commons-pool-1.2.jar。
              而且很多人的連接池配置語句中 沒有這句話。這句話的作用不太明白,但暫時(shí)好像不添加也能正常運(yùn)行。












          主站蜘蛛池模板: 津南区| 广宗县| 习水县| 和田县| 盐山县| 文水县| 云安县| 广东省| 蒙阴县| 陆良县| 庆云县| 广昌县| 云安县| 新化县| 揭西县| 陆良县| 拉孜县| 长武县| 凤山县| 南木林县| 贵德县| 万源市| 攀枝花市| 怀集县| 靖安县| 酉阳| 昆明市| 报价| 香港| 修武县| 搜索| 昌乐县| 黑山县| 咸阳市| 玉龙| 张家口市| 玉林市| 扶绥县| 大埔区| 西城区| 临洮县|