一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java配置dbcp連接池(數據庫連接池)示例分享

java配置dbcp連接池(數據庫連接池)示例分享

2019-10-26 16:52java教程網 JAVA教程

java配置dbcp連接池示例分享,大家參考使用吧

使用jar包:commons-dbcp-1.4.jar、commons-pool-1.6.jar、commons-logging-1.1.3.jar,另外還有數據庫的jdbc驅動,適用java6及以上平臺

連接池管理類 

復制代碼代碼如下:


package cn.songxinqiang.samples.commonsdbcp.util;

 

import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.SQLException;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory;

/**
 * tomcat數據庫連接池管理類<br>
 * 使用為tomcat部署環境<br>
 * 需要在類路徑下準備數據庫連接配置文件dbcp.properties
 * 
 * @author 宋信強
 * @mail [email protected]
 * 
 * @time 2013-12-27
 * 
 */
public class DBManager {
 private static final Log log = LogFactory.getLog(DBManager.class);
 private static final String configFile = "dbcp.properties";

 private static DataSource dataSource;

 static {
  Properties dbProperties = new Properties();
  try {
   dbProperties.load(DBManager.class.getClassLoader()
     .getResourceAsStream(configFile));
   dataSource = BasicDataSourceFactory.createDataSource(dbProperties);

   Connection conn = getConn();
   DatabaseMetaData mdm = conn.getMetaData();
   log.info("Connected to " + mdm.getDatabaseProductName() + " "
     + mdm.getDatabaseProductVersion());
   if (conn != null) {
    conn.close();
   }
  } catch (Exception e) {
   log.error("初始化連接池失敗:" + e);
  }
 }

 private DBManager() {
 }

 /**
  * 獲取鏈接,用完后記得關閉
  * 
  * @see {@link DBManager#closeConn(Connection)}
  * @return
  */
 public static final Connection getConn() {
  Connection conn = null;
  try {
   conn = dataSource.getConnection();
  } catch (SQLException e) {
   log.error("獲取數據庫連接失敗:" + e);
  }
  return conn;
 }

 /**
  * 關閉連接
  * 
  * @param conn
  *            需要關閉的連接
  */
 public static void closeConn(Connection conn) {
  try {
   if (conn != null && !conn.isClosed()) {
    conn.setAutoCommit(true);
    conn.close();
   }
  } catch (SQLException e) {
   log.error("關閉數據庫連接失敗:" + e);
  }
 }

}

 

連接配置文件

 

復制代碼代碼如下:


#數據庫驅動
driverClassName=com.mysql.jdbc.Driver
#數據庫連接地址
url=jdbc:mysql://localhost/ctg
#用戶名
username=root
#密碼
password=123456

 

#連接池的最大數據庫連接數。設為0表示無限制
maxActive=30
#最大空閑數,數據庫連接的最大空閑時間。超過空閑時間,數據庫連
#接將被標記為不可用,然后被釋放。設為0表示無限制
maxIdle=10
#最大建立連接等待時間。如果超過此時間將接到異常。設為-1表示無限制
maxWait=1000

#超過removeAbandonedTimeout時間后,是否進 行沒用連接(廢棄)的回收(默認為false,調整為true) 
removeAbandoned=true
#超過時間限制,回收沒有用(廢棄)的連接(默認為 300秒,調整為180)
removeAbandonedTimeout=180

 

測試連接池工作效率,同時演示怎樣獲取連接和關閉連接

 

復制代碼代碼如下:

public class ConnectionSource {
 public static void main(String[] args){
  long begin=System.currentTimeMillis();
  for(int i=0;i<10000;i++){
   Connection conn=DBManager.getConn();
   System.out.print(i+"   ");
   DBManager.closeConn(conn);
  }
  long end=System.currentTimeMillis();
  System.out.println("用時:"+(end-begin));
 }
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费看a片毛片 | 99热在线免费观看 | 国产深夜视频 | 国产欧美又粗又猛又爽老 | 99精彩免费观看 | 日本加勒比一区 | 韩国禁片在线观看久 | 色中文| 全程粗语对白视频videos | 青春草在线观看精品免费视频 | 9191视频 | 日本又大又硬又粗的视频 | 亚洲欧美综合一区 | 丝瓜视频黄瓜视频 | 国产伦久视频免费观看视频 | 日韩欧美一区二区三区四区 | 日本欧美不卡一区二区三区在线 | 亚洲精品永久免费 | 国产精品亚洲一区二区久久 | 精品一区二区三区高清免费不卡 | 门房秦大爷最新章节阅读 | 3x免费高清视频 | 黄+色+性+人免费 | 亚洲va久久久久综合 | 波多野结衣中文字幕乱七八糟 | 国产日韩精品欧美一区 | 调教催眠改造np总攻 | 国产亚洲精品美女 | 亚洲乱码一二三四五六区 | 丝瓜香蕉视频 | 福利姬 magnet | 图片专区亚洲欧美另类 | 关晓彤被调教出奶水的视频 | 日本在线播放视频 | 色老板最新网站视频地址 | 欧美视频一区二区专区 | 国产精品igao视频网网址 | 国产成人综合网 | 男男gaygays18中国 | 91精品综合国产在线观看 | 国产精品九九久久一区hh |