久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Tomcat7 新的數(shù)據(jù)庫連接池Tomcat jdbc pool介紹和配置

 xfxyxh 2020-03-11
Tomcat 在 7.0 以前的版本都是使用commons-dbcp做為連接池的實(shí)現(xiàn),,但是 dbcp存在一些問題:
(1)dbcp 是單線程的,,為了保證線程安全會鎖整個連接池
(2)dbcp 性能不佳
(3)dbcp 太復(fù)雜,超過 60 個類,,發(fā)展滯后,。
因此,通常J2EE中還會使用其它的高性能連接池,,如 C3P0,,還有阿里系的 druid 等。為此,,Tomcat 從 7.0 開始引入一個新的模塊: Tomcat jdbc pool
tomcat jdbc pool 近乎兼容 dbcp ,,性能更高
異步方式獲取連接
tomcat jdbc pool 是 tomcat 的一個模塊,基于 tomcat JULI,,使用 Tomcat 的日志框架
使用 javax.sql.PooledConnection 接口獲取連接
支持高并發(fā)應(yīng)用環(huán)境
超簡單,,核心文件只有8個,比 c3p0 還少
更好的空閑連接處理機(jī)制
支持 JMX
支持 XA Connection,。
tomcat jdbc pool 可在 Tomcat 中直接使用,,也可以在獨(dú)立的應(yīng)用中使用。

1.Tomcat 中直接使用的方法:
在conf/server.xml下的<GlobalNamingResources>節(jié)點(diǎn)里配置resource,例如:

Xml代碼 復(fù)制代碼 收藏代碼
  1. <Resource name="jdbc/ens"  
  2.       auth="Container"  
  3.       type="javax.sql.DataSource"  
  4.       factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"  
  5.       testWhileIdle="true"  
  6.       testOnBorrow="true"  
  7.       testOnReturn="false"  
  8.       validationInterval="30000"  
  9.       timeBetweenEvictionRunsMillis="30000"  
  10.       maxActive="100"  
  11.       minIdle="10"  
  12.       maxWait="10000"  
  13.       initialSize="10"  
  14.       removeAbandonedTimeout="60"  
  15.       removeAbandoned="true"  
  16.       logAbandoned="true"  
  17.       minEvictableIdleTimeMillis="30000"  
  18.       jmxEnabled="true"  
  19.       jdbcInterceptors=  
  20. "org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"  
  21.       username="root"  
  22.       password="123"  
  23.       driverClassName="com.mysql.jdbc.Driver"  
  24.       url="jdbc:mysql://localhost:3306/ens"/>  
  25.   
  26. 然后,,在context.xml文件的<Context></Context>節(jié)點(diǎn)中添加如下配置:  
  27. <ResourceLink global="jdbc/ens" name="jdbc/ens" type="javax.sql.DataSource"/>  


global="jdbc/ens" 中的參數(shù)值("jdbc/ens")必須和上一段<Resource >配置中的name屬性的值保持一樣,。name="jdbc/ens" 這個可以隨便取,但是在程序中調(diào)用的時候,就應(yīng)該與name的值保持一致。到這里,連接池已經(jīng)配置好啦,。

用JSP測試一下:

Html代碼 復(fù)制代碼 收藏代碼
  1. <%@ page language="java" pageEncoding="gbk"%>  
  2. <%@page import="java.sql.Connection"%>  
  3. <%@page import="javax.naming.Context"%>  
  4. <%@page import="javax.naming.InitialContext"%>  
  5. <%@page import="javax.sql.DataSource"%>  
  6. <%@page import="java.sql.Statement"%>  
  7. <%@page import="java.sql.ResultSet"%>  
  8. <%  
  9.    //連接池的獲取  
  10.     Connection conn = null;  
  11.     DataSource ds = null;  
  12.     ResultSet rs  =null;  
  13.     Statement stmt = null;  
  14.     Context initCtx = new InitialContext();  
  15.     ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/ens");  
  16.    if(ds!=null){  
  17.         out.println("已經(jīng)獲得DataSource!");  
  18.         out.println("<br>");  
  19.         conn = ds.getConnection();  
  20.        try{  
  21.         stmt = conn.createStatement();  
  22.         String sql ="select * from ens_area";  
  23.         rs = stmt.executeQuery(sql);  
  24.         out.println("以下是從數(shù)據(jù)庫中讀取出來的數(shù)據(jù):<br>");  
  25.             while(rs.next()){  
  26.                 out.println("<br>");  
  27.                 out.println(rs.getString("area_name"));  
  28.             }  
  29.        }catch(Exception ex){  
  30.          ex.printStackTrace();  
  31.        }finally{  
  32.           conn.close();  
  33.           rs.close();  
  34.           stmt.close();  
  35.        }  
  36.    }  
  37.   
  38. %>  
分享到:
評論

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多