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
网友评论