mysql 连接池

来源:互联网 发布:超星电子图书数据库 编辑:程序博客网 时间:2024/05/20 22:40


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

原创粉丝点击