DBCP连接池

2018-11-05  本文已影响0人  小牛长成记
public class DBCPUtil {
    private static javax.sql.DataSource ds = null ;

static{
    //创建属性类读取文件
    Properties pro = new Properties();
    try {
        //读取配置文件   getClassLoader()为类加载器  getResourceAsStream("dbcpconfig.properties")获取目标文件的字节流
        pro.load(DBCPUtil.class.getClassLoader().getResourceAsStream("dbcpconfig.properties"));
        ds = BasicDataSourceFactory.createDataSource(pro);
    } catch (Exception e) {
        throw new ExceptionInInitializerError("初始化错误,请检查配置文件");
    }
}


//创建链接
public static Connection getConnection(){
    try {
        return ds.getConnection();
    } catch (SQLException e) {
        throw new RuntimeException("服务器忙。。。");
    }
    
}
//关闭资源
public static void release(Connection con,PreparedStatement ps,ResultSet rs){
     try {
         if(rs != null){
            rs.close();
         }
         if(ps != null){
             ps.close();
         }
         if(con != null){
             con.close();
         }
    } catch (SQLException e) {
        System.out.println("资源关闭失败!");
        e.printStackTrace();
    }
 }

}

配置文件:dbcpconfig.properties

连接设置

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/servlet
username=root
password=

initialSize=10

最大连接数量

maxActive=50

maxIdle=20

minIdle=5

maxWait=60000

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

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

connectionProperties=useUnicode=true;characterEncoding=utf8

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

defaultAutoCommit=true

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

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

defaultReadOnly=

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

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

defaultTransactionIsolation=REPEATABLE_READ

上一篇 下一篇

猜你喜欢

热点阅读