DBCP数据连接池

package com.itheima.utils;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

/**
 * 用于获取连接
 * @author wangli
 *
 */
public class DbcpUtil {
    private static DataSource ds ;
    static{
        try {
            InputStream is =DbcpUtil.class.getClassLoader().getResourceAsStream("dbcpcfg.properties");
            Properties p = new Properties();
            p.load(is);
            
            ds = BasicDataSourceFactory.createDataSource(p);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 用于从池中获取连接
     * @return
     */
    public static synchronized Connection getConneciton(){
        try {
            return ds.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        }
    }
    
    //关闭资源
    public static void release(ResultSet rs,Statement st,Connection con ){
        try {
            if(rs!=null){
                rs.close();
                rs=null;//目的是让回收器立即进行垃圾回收
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        try {
            if(st!=null){
                st.close();
                st=null;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        try {
            if(con!=null){
                con.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    
    }
}


配置文件信息
#\u8FDE\u63A5\u8BBE\u7F6E driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/day16 username=root password=root #
<!-- \u521D\u59CB\u5316\u8FDE\u63A5 --> initialSize=10 #\u6700\u5927\u8FDE\u63A5\u6570\u91CF maxActive=50 #<!-- \u6700\u5927\u7A7A\u95F2\u8FDE\u63A5 --> maxIdle=20 #<!-- \u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5 --> minIdle=5 #<!-- \u8D85\u65F6\u7B49\u5F85\u65F6\u95F4\u4EE5\u6BEB\u79D2\u4E3A\u5355\u4F4D 6000\u6BEB\u79D2/1000\u7B49\u4E8E60\u79D2 --> maxWait=60000 #JDBC\u9A71\u52A8\u5EFA\u7ACB\u8FDE\u63A5\u65F6\u9644\u5E26\u7684\u8FDE\u63A5\u5C5E\u6027\u5C5E\u6027\u7684\u683C\u5F0F\u5FC5\u987B\u4E3A\u8FD9\u6837\uFF1A[\u5C5E\u6027\u540D=property;] #\u6CE8\u610F\uFF1A"user" \u4E0E "password" \u4E24\u4E2A\u5C5E\u6027\u4F1A\u88AB\u660E\u786E\u5730\u4F20\u9012\uFF0C\u56E0\u6B64\u8FD9\u91CC\u4E0D\u9700\u8981\u5305\u542B\u4ED6\u4EEC\u3002 connectionProperties=useUnicode=true;characterEncoding=gbk #\u6307\u5B9A\u7531\u8FDE\u63A5\u6C60\u6240\u521B\u5EFA\u7684\u8FDE\u63A5\u7684\u81EA\u52A8\u63D0\u4EA4\uFF08auto-commit\uFF09\u72B6\u6001\u3002 defaultAutoCommit=true #driver default \u6307\u5B9A\u7531\u8FDE\u63A5\u6C60\u6240\u521B\u5EFA\u7684\u8FDE\u63A5\u7684\u53EA\u8BFB\uFF08read-only\uFF09\u72B6\u6001\u3002 #\u5982\u679C\u6CA1\u6709\u8BBE\u7F6E\u8BE5\u503C\uFF0C\u5219\u201CsetReadOnly\u201D\u65B9\u6CD5\u5C06\u4E0D\u88AB\u8C03\u7528\u3002\uFF08\u67D0\u4E9B\u9A71\u52A8\u5E76\u4E0D\u652F\u6301\u53EA\u8BFB\u6A21\u5F0F\uFF0C\u5982\uFF1AInformix\uFF09 defaultReadOnly= #driver default \u6307\u5B9A\u7531\u8FDE\u63A5\u6C60\u6240\u521B\u5EFA\u7684\u8FDE\u63A5\u7684\u4E8B\u52A1\u7EA7\u522B\uFF08TransactionIsolation\uFF09\u3002 #\u53EF\u7528\u503C\u4E3A\u4E0B\u5217\u4E4B\u4E00\uFF1A\uFF08\u8BE6\u60C5\u53EF\u89C1javadoc\u3002\uFF09NONE,READ_UNCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE defaultTransactionIsolation=READ_UNCOMMITTED

 

posted @ 2015-12-25 09:38  白金05  阅读(259)  评论(0编辑  收藏  举报