package com.mengya.ConnUtil;
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;
public class SQLConnUtil {
private static InputStream inStream;
private static Properties pro;
private static DataSource datasource;
static{
inStream=SQLConnUtil.class.getClass().getResourceAsStream("/dbcpconfig.properties");
pro=new Properties();
try {
pro.load(inStream);
datasource=BasicDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("初始化错误!");
}
}
public static DataSource getDataSource(){
return datasource;
}
public static Connection getConnection(){
try {
return datasource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
throw new RuntimeException("得到数据库连接失败!");
}
}
public static void free(ResultSet rs,Statement sta,Connection conn){
try {
if(rs!=null){
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
if(sta!=null){
sta.close();
}
} catch (Exception e) {
e.printStackTrace();
}finally{
if(conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}
#连接设置 driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver url=jdbc:sqlserver://localhost:1433;databaseName=mp username=sa password=mengya #<!-- 初始化连接 --> initialSize=10 #最大连接数量 maxActive=50 #<!-- 最大空闲连接 --> maxIdle=20 #<!-- 最小空闲连接 --> minIdle=5 #<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 --> maxWait=60000 #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