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>
}
}