c3p0连接池,You can't operate on a closed Connection

时间:2021-02-10 20:29:52
RT,第一次没问题,第二次以及以后就会出现这个问题
是不是我从连接池获取Connection,使用完的时候,最后只需要关闭ResultSet和Statement
Connection不用关

15 个解决方案

#1


另求Connection,ResultSet和Statement
的关闭顺序,多谢指教

#2


使用连接池时,初始化和关闭都按照普通连接一样操作,连接池内部通常是覆盖原有的close方法

#3


关闭的时候我一般按照这样的顺序
ResultSet
Statement
Connection

#4


c3p0连接池呢,最后要connection.close么

#5


"实际上web上的连接池就是一个Applicatio级别的vector,因为vector是同步的所以在server开始实例是一次性的实例很多个connection的连接在vector里,然后每当调用一个connection实例时便游历一边vector,找到没有被使用的vector的话,便将这个传递给程序,当vector内的connection可用数量小于标准可用connection是便会自动实例connection再加入vector内"

按理说咱close的时候,应该不会关掉连接池里的connection,出错信息说我得到了一个closed的connection,而且对其操作

#6


或者咱最后应该写 connection=null?不解

#7


写那个=null不是必要的,不妨操作结束的时候close一下

#8


c3p0不用处理connect,你可以跟踪下代码,执行完后,connect对象已经为null了,

#9


You can't operate on a closed Connection

那这句是因为我手动close引起的么

#10


引用 8 楼 liyunqinglyq 的回复:
c3p0不用处理connect,你可以跟踪下代码,执行完后,connect对象已经为null了,

受教了

#11


不用关闭 连接池连接会放到池用 供下次在用啊

#12


那用连接池,是不是就不用try catch finally close了
把finally close那段去掉么

#13


另外问下,用连接池,rs和ps要close,但是connection不要close,是这样么

#14


我同意二楼的观点
作为连接池包的使用者应该向正常编写代码一样按顺序关闭resultset,statement,connection,如果不这样一旦你不使用连接池或者更换连接池怎么办,调用连接池的connection.close()方法时他不会关闭数据库接连,只是把相应的connection放回到池子中,出现这种情况会不会是网络问题,或者有人在数据库那边删除这次连接了

#15


我是本机测试的,connection.close就会出这个错
删掉connection.close就不会
在数据库那边show processlist发现c3p0正常工作的,一开始有初始化配置的connection

#1


另求Connection,ResultSet和Statement
的关闭顺序,多谢指教

#2


使用连接池时,初始化和关闭都按照普通连接一样操作,连接池内部通常是覆盖原有的close方法

#3


关闭的时候我一般按照这样的顺序
ResultSet
Statement
Connection

#4


c3p0连接池呢,最后要connection.close么

#5


"实际上web上的连接池就是一个Applicatio级别的vector,因为vector是同步的所以在server开始实例是一次性的实例很多个connection的连接在vector里,然后每当调用一个connection实例时便游历一边vector,找到没有被使用的vector的话,便将这个传递给程序,当vector内的connection可用数量小于标准可用connection是便会自动实例connection再加入vector内"

按理说咱close的时候,应该不会关掉连接池里的connection,出错信息说我得到了一个closed的connection,而且对其操作

#6


或者咱最后应该写 connection=null?不解

#7


写那个=null不是必要的,不妨操作结束的时候close一下

#8


c3p0不用处理connect,你可以跟踪下代码,执行完后,connect对象已经为null了,

#9


You can't operate on a closed Connection

那这句是因为我手动close引起的么

#10


引用 8 楼 liyunqinglyq 的回复:
c3p0不用处理connect,你可以跟踪下代码,执行完后,connect对象已经为null了,

受教了

#11


不用关闭 连接池连接会放到池用 供下次在用啊

#12


那用连接池,是不是就不用try catch finally close了
把finally close那段去掉么

#13


另外问下,用连接池,rs和ps要close,但是connection不要close,是这样么

#14


我同意二楼的观点
作为连接池包的使用者应该向正常编写代码一样按顺序关闭resultset,statement,connection,如果不这样一旦你不使用连接池或者更换连接池怎么办,调用连接池的connection.close()方法时他不会关闭数据库接连,只是把相应的connection放回到池子中,出现这种情况会不会是网络问题,或者有人在数据库那边删除这次连接了

#15


我是本机测试的,connection.close就会出这个错
删掉connection.close就不会
在数据库那边show processlist发现c3p0正常工作的,一开始有初始化配置的connection