Java 如何在使用it连接池后返回连接时检查连接是否处于活动状态?
我将连接添加到arraylist中,并在需要时逐个获取连接,这里我使用连接池中的连接Java 如何在使用it连接池后返回连接时检查连接是否处于活动状态?,java,jdbc,Java,Jdbc,我将连接添加到arraylist中,并在需要时逐个获取连接,这里我使用连接池中的连接 ArrayList<Connection> al=new ArrayList<Connection>(); public Connection getconnection(){ if(al.size()>0) { try{ connection = al.get(0); al.remove(connec
ArrayList<Connection> al=new ArrayList<Connection>();
public Connection getconnection(){
if(al.size()>0)
{
try{
connection = al.get(0);
al.remove(connection);
}catch(Exception e){
out.print(e);
}
}else{
out.println("No Database connection is Available !");
}
return connection;
}
在添加到ArrayList之前,我需要检查此连接是否处于活动状态 找到了这个问题的解决方案,希望能有所帮助
//checking connection is live or not
public boolean checkconnection(Connection conn){
Connection validconnection = conn;
try{
if(validconnection.isValid(1) && validconnection !=null)
return true;
}catch(Exception er){
out.println("\n I'm not valid connection I can be null or Invalid, Please Check!");
}
return false;
}
//Adding Connection back to pool
public void returnconnection(Connection con) throws Exception{
Connection c = con;
boolean validreturncon=checkconnection(c);
if (validreturncon){
al.add(c);
out.println("Hi I'm Connection, I'm back! ");
}
else{
out.println("\n Dead Connection, No need to put me into ArrayList! ");
}
}
有帮助吗?不要扮演自己的连接池角色。使用一个现有的,如HikariCP、DBCP、c3p0等,它将为您节省大量头痛和bug。
//checking connection is live or not
public boolean checkconnection(Connection conn){
Connection validconnection = conn;
try{
if(validconnection.isValid(1) && validconnection !=null)
return true;
}catch(Exception er){
out.println("\n I'm not valid connection I can be null or Invalid, Please Check!");
}
return false;
}
//Adding Connection back to pool
public void returnconnection(Connection con) throws Exception{
Connection c = con;
boolean validreturncon=checkconnection(c);
if (validreturncon){
al.add(c);
out.println("Hi I'm Connection, I'm back! ");
}
else{
out.println("\n Dead Connection, No need to put me into ArrayList! ");
}
}