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(</span>20<span style="color: rgba(0, 0, 0, 1)">);
    dataSource.setMinIdle(</span>3<span style="color: rgba(0, 0, 0, 1)">);
    dataSource.setMaxWait(</span>1000<span style="color: rgba(0, 0, 0, 1)">);
    
    Connection con </span>=<span style="color: rgba(0, 0, 0, 1)"> dataSource.getConnection();
    Connection con1 </span>= <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> MyConnection(con);//装饰者模式
    System.out.println(con1.getClass().getName());
    
    </span><span style="color: rgba(0, 128, 0, 1)">/**</span><span style="color: rgba(0, 128, 0, 1)">
     * 连接池内部使用四大参数创建了连接对象!即mysql驱动提供的Connection
     * 连接池使用mysql的连接对象进行了装饰,只对close()方法进行了增强!
     * 装饰之后的Connection的close()方法,用来把当前连接归还给池!
     </span><span style="color: rgba(0, 128, 0, 1)">*/</span><span style="color: rgba(0, 0, 0, 1)">
    con1.close();</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">把连接归还给池!</span>

}
}