📄 dbconnectionpool.java
字号:
package cn.com.iaspec.workflow.db;
import java.sql.*;
import java.util.*;
public class DBConnectionPool{
private Vector freeConnections=new Vector();
private int maxConn;
private int connNumb;
private String URL;
private String password;
private String user;
public DBConnectionPool(String URL,String user,String password,int maxConn){
this.URL=URL;
this.user=user;
this.password=password;
this.maxConn=maxConn;
}
public synchronized void freeConnection(Connection con){
System.out.println("begin freeConnection...");
freeConnections.addElement(con);
connNumb--;
notifyAll();
System.out.println("connection count is:"+connNumb);
}
public synchronized Connection getConnection()
throws SQLException{
Connection con=null;
if(freeConnections.size()>0){
con=(Connection)freeConnections.firstElement();
freeConnections.removeElementAt(0);
try{
if(con.isClosed()){
con=getConnection();
}
}
catch(SQLException e){
con=getConnection();
}
}
else if(maxConn==0||connNumb<maxConn){
con=newConnection();
}
if(con!=null){
connNumb++;
}
System.out.println("connection count is:"+connNumb);
return con;
}
private Connection newConnection()
throws SQLException{
System.out.println("begin newConnection...");
Connection con=DriverManager.getConnection(URL,user,password);
return con;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -