dbcp数据库连接池的java实现

1、准备

  • 导入jar包
    • commons-dbcp-1.4.jar
    • commons-pool-1.3.jar
    • 数据库驱动包,如:mysql-connector-java-5.1.28-bin.jar

2、实现案例

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;

import org.apache.commons.dbcp.BasicDataSource;
import org.junit.Test;

/**
 * DBCP连接池
 *
 */
public class Demo2 {
    @Test
    public void fun1() throws SQLException {
        /*
         * 1. 创建连接池对象
         * 2. 配置四大参数
         * 3. 配置池参数
         * 4. 得到连接对象
         */
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUrl("jdbc:mysql://localhost:3306/mydb3");
        dataSource.setUsername("root");
        dataSource.setPassword("123");
        
        dataSource.setMaxActive(20);
        dataSource.setMinIdle(3);
        dataSource.setMaxWait(1000);
        
        Connection con = dataSource.getConnection();
        Connection con1 = new MyConnection(con);//装饰者模式
        System.out.println(con1.getClass().getName());
        
        /**
         * 连接池内部使用四大参数创建了连接对象!即mysql驱动提供的Connection
         * 连接池使用mysql的连接对象进行了装饰,只对close()方法进行了增强!
         * 装饰之后的Connection的close()方法,用来把当前连接归还给池!
         */
        con1.close();//把连接归还给池!
    }
}
原文地址:https://www.cnblogs.com/hehaiyang/p/4704633.html