Java 如何在使用it连接池后返回连接时检查连接是否处于活动状态?

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中,并在需要时逐个获取连接,这里我使用连接池中的连接

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! ");
    }
}