package org.dang.util;
import java.sql.Connection;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
public class DBUtil {
//连接池对象
private static DataSource dataSource;
//负责将connection与当前执行线程帮定
private static ThreadLocal<Connection> connLocal=new ThreadLocal<Connection>();
static {
try{
Properties props=new Properties();
props.load(DBUtil.class.getClassLoader().getResourceAsStream("dbcd.properties"));
dataSource = BasicDataSourceFactory.createDataSource(props);
}catch(Exception e){
e.printStackTrace();
}
}
//连接
public static Connection getConnection() throws Exception{
Connection conn=connLocal.get();
if(conn==null){
conn=dataSource.getConnection();
connLocal.set(conn);
}
return conn;
}
//关闭
public static void closeConnection() throws Exception{
Connection conn=connLocal.get();
connLocal.set(null);
if(conn!=null && !conn.isClosed()){
conn.close();
}
}
//测试
public static void main(String[] args) {
System.out.println(dataSource);
}
}
dbcd.properties 文件
driverClassName= com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
username=root
password=123456
initialSize=2
#最大连接数量
maxActive=20
#最大空闲连接
maxIdle=5
#超时等待时间以毫秒为单位
maxWait=30000