DBCP连接池的创建

实现连接池

使用两个Jar文件来实现: 

    文件是apache提供的 : dbcp.jar(连接池) pool.jar(连接池实现的依赖库)




1.  这个线程池会预读本地文件 , 进行数据库的连接配置:  

    需要在src根目录, 创建一个properties文件: 

        #驱动地址
        driverClassName=oracle.jdbc.OracleDriver
        #连接地址
        url=jdbc:oracle:thin:@localhost:1521
        #帐号
        username=system
        #密码
        password=123456

        #初始化的连接数量
        initialSize=10
        #最大的连接数量
        maxActive=200
        #最大空闲连接数量
        maxIdle=10
        #最小的空闲连接诶数量
        minIdle=1
        #超时时间(毫秒)
        maxWait=15000

2.  在Java代码中, 将上面的配置文件, 变为Properties对象

    InputStream is = DBCPUtil.class.getClassLoader().getResourceAsStream("dbcp.properties");
        Properties ppt = new Properties();
        //加载一个流指向的文件
        ppt.load(is);

3.  通过连接池工厂对象 获取一个连接池
    DataSource ds = BasicDataSourceFactory.createDataSource(ppt);

4.  获取连接对象

    Connection conn = ds.getConnection();

5.  使用完毕连接 , 正常关闭连接即可, 连接池会自动回收!

创建数据库连接池

编写properies配置文件

配置文件具体内容如下:
    #驱动地址
    driverClassName=oracle.jdbc.OracleDriver
    #连接池
    url=jdbc:oracle:thin:@localhost:1521:XE
    #账号
    username=scott
    #密码
    password=tiger
    #最大连接数量
    maxAcive=100
    #初始连接数量
    initialSize=5
    #最大空闲连接数量
    maxIdle=5
    #最小空闲连接数量
    minIdle=3
    #超时等待时间
    maxWait=1000

编写数据连接池工具类

具体实现代码如下:
    import javax.sql.DataSource;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Statement;
    import java.util.Properties;
    
    /**
     * @Auther: 
     * @Date: 2018/12/24 16:03
     * @Description: 创建一个连接池工具类
     */
    public class DBCPUtil {
    
        private static DataSource dataSource;
    
        static{
            try{
                //1、将properties文件夹在到输入流中
                InputStream is = DBCPUtil.class.getClassLoader()
                    .getResourceAsStream("dbcp.properties");
                //2、创建properties对象,用于读取第一步得到的输入流
                Properties ps = new Properties();
                //3、使用上述的properties对象,加载本地的properties文件
                ps.load(is);
                //4、使用连接池工厂类,创建连接池对象
                DataSource dataSource = BasicDataSourceFactory
                    .createDataSource(ps);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    
        //用于从连接池中,获取一个连接对象的操作方法
        public static Connection getConnection(){
            try{
               return dataSource.getConnection();
            }catch (Exception e){
                e.printStackTrace();
                return null;
            }
        }
    
        //用于释放数据库的连接资源
        public static void close(Connection conn, Statement state,
             ResultSet resultSet){
            try{
                if(conn!=null){
                    conn.close();
                    conn = null;
                }
                if(state!=null){
                    state.close();
                    state = null;
                }
                if (resultSet!=null){
                    resultSet.close();
                    resultSet = null;
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

转载于:https://www.cnblogs.com/itcainiao2521/p/10168919.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值