虽说我们现在可以用第三方提供的java连接池,比如c3p0,dbcp等,这些用得也比较广泛,然而当我们舍弃这些连接池时,运用一些模式,也是可以实现自己的连接池的。
首先我们的清楚,设计连接池的目的,一是我们得保证多个连接,即保证每个线程都能取得不同的Connection。 二是得提供一个方法回收那些连接,使得处在等待状态的线程能够取得连接。以下是一个简单的连接池代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ArrayList;
import java.util.List;
public class DbPool1 {
//声明一个容器,放所有声明的连接Connection
private static List<Connection> pool = new ArrayList<Connection>();
static{
try{
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql:///test?characterEncoding=UTf8";
for(int i=0;i<3;i++){
//创建三个连接
Connection con = DriverManager.getConnection(url,"root","root");
//将这个三个连接放到pool中去
pool.add(con);
}
System.err.println("连接是:&#