关于连接池的理解??这样有问题吗?

时间:2021-12-09 04:24:38
假如在程序中连接数据库都是通过连接池连的,如weblogic或自己写的连接池,那么我想在程序中不用每次建立连接后都close了吧,因为如果连接池自己管理连接,最多也就只可能是那么多个连接,也不会有性能的问题。而就算在程序中写了close,其实还是没有真正断开一个连接。
这样理解有问题吗?

6 个解决方案

#1


这样理解不正确,你必须在程序中完成连接的close()
例如:
try{

}catch(){
}

#2


这样理解不正确,你必须在程序中完成连接的close()
例如:
try{
    con=getConnection();

}catch(){
}

#3


不好意思!!!!
这样理解不正确,你必须在程序中完成连接的close()
例如:
try{
    con=getConnection();
     pstmt=con.PrepareStatement(sql);
}catch(){
}finally{
     if(pstmt!=null) pstmt.close();//使用finally来关闭连接
     if(con!=null) con.close();
}

#4


我觉得关闭连接的本来目的就是为了释放资源,但是用了连接池,本身就已经管理了这连接资源,已经在可控的范围之内了,不关闭也不会影响应用程序的性能啊。

#5


如果使用了连接池,那么con.close()只是把连接unlock,并放回连接池中
给其它的程序用,如果是真正的关掉,那要连接池做什么。

#6


连接池可以自动收回不再使用的连接吗?

#1


这样理解不正确,你必须在程序中完成连接的close()
例如:
try{

}catch(){
}

#2


这样理解不正确,你必须在程序中完成连接的close()
例如:
try{
    con=getConnection();

}catch(){
}

#3


不好意思!!!!
这样理解不正确,你必须在程序中完成连接的close()
例如:
try{
    con=getConnection();
     pstmt=con.PrepareStatement(sql);
}catch(){
}finally{
     if(pstmt!=null) pstmt.close();//使用finally来关闭连接
     if(con!=null) con.close();
}

#4


我觉得关闭连接的本来目的就是为了释放资源,但是用了连接池,本身就已经管理了这连接资源,已经在可控的范围之内了,不关闭也不会影响应用程序的性能啊。

#5


如果使用了连接池,那么con.close()只是把连接unlock,并放回连接池中
给其它的程序用,如果是真正的关掉,那要连接池做什么。

#6


连接池可以自动收回不再使用的连接吗?