创建数据库连接以及关闭连接是很耗费时间的,并且数据库支持的连接数量也是有限的,当数据库的连接数量达到上限的时候,后续的连接就会失败。因此这里引入了数据库缓冲池。
public class ConnecionPool {
private int size;
List connections = new ArrayList<>();
public ConnecionPool(int size){
this.size=size;
init();
}
public void init(){
try {
Class.forName("com.mysql.jdbc.Driver");
while (size--!=0){
connections.add(DriverManager.getConnection(jdbc:mysql://127.0.0.1:3306/d数据库名称, 用户名,密码)// );
}
}catch (Exception e){
e.printStackTrace();
}
}
public Connection getConnection(){
try {//如果没有连接了,线程就等待
while (connections.isEmpty()){
this.wait();
}
}catch (Exception e){
e.printStackTrace();
}
return connections.remove(0);
}
public void returnConntion(Connection connection){
connections.add(connection);
this.notifyAll();
}
}