日期:2014-05-16  浏览次数:20407 次

DBCP配置
项目中用到了连接池,JDBC + DBCP 。 配置方法如下

JAR包:commons-dbcp-1.2.2.jar,commons-pool-1.4.jar

引入配置文件dhcp.properties在src目录下

#连接设置
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/monitor?rewriteBatchedStatements=true
username=root
password=r#dcenter9

#<!-- 初始化连接 -->
initialSize=10

#最大连接数量
maxActive=50

#<!-- 最大空闲连接 -->
maxIdle=20

#<!-- 最小空闲连接 -->
minIdle=5

#是否在自动回收超时连接的时候打印连接的超时错误
logAbandoned=true

#是否自动回收超时连接
removeAbandoned=true

#超时时间(以秒数为单位)
removeAbandonedTimeout=180

#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
maxWait=1000

#JDBC驱动建立连接时附带的连接属性属性的格式必须为这样:[属性名=property;]

#注意:"user" 与 "password" 两个属性会被明确地传递,因此这里不需要包含他们。

connectionProperties=useUnicode=true;characterEncoding=gbk

#指定由连接池所创建的连接的自动提交(auto-commit)状态。

defaultAutoCommit=true

#driver default 指定由连接池所创建的连接的只读(read-only)状态。

#如果没有设置该值,则“setReadOnly”方法将不被调用。(某些驱动并不支持只读模式,如:Informix)

defaultReadOnly=

#driver default 指定由连接池所创建的连接的事务级别(TransactionIsolation)。

#可用值为下列之一:(详情可见javadoc。)NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE

defaultTransactionIsolation=READ_UNCOMMITTED





类DbManager加载配置文件和创建connection

package com.hundsun.job.db;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;

import com.hundsun.job.util.DBUtil;

/**
*
* DBCP数据库连接池管理 当整合监控平台后不需要读取配置文件直接用整合ibaits获取connection:方法为
*  Connection con = DbManager.getConnection();
*
*/
public class DbManager {

private static BasicDataSource dataSource = null;

public static void init() {
InputStream fileinputstream = null;
try {
//读取配置文件
fileinputstream = new FileInputStream(DBUtil.DB_PROPERTIES);
Properties p = new Properties();
p.load(fileinputstream);
// 加载配置信息
loadDataSource(p);
fileinputstream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

private static void loadDataSource(Properties p){
try {
if(dataSource != null){
dataSource.close();
dataSource = null;
}
dataSource = (BasicDataSource)BasicDataSourceFactory.createDataSource(p);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static synchronized Connection getConnection() throws SQLException {
if(dataSource == null){
init();
}
Connection conn = null;
if(dataSource != null){
conn = dataSource.getConnection();
}
return conn;
}
}