Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用c3p0记录未关闭的PreparedStatement_Java_C3p0 - Fatal编程技术网

Java 使用c3p0记录未关闭的PreparedStatement

Java 使用c3p0记录未关闭的PreparedStatement,java,c3p0,Java,C3p0,使用c3p0,通过设置属性debugUnreturnedConnectionStackTraces和 未返回的连接超时。我想知道是否有办法找到未关闭的PreparedStatement,因为今天我找到了如下代码: ... ps=dbConnection.prepareStatement(qry); rs=ps.executeQuery(); if(!rsCandItem.next())//to check Result Set has rows { rs.close(); qry = "S

使用c3p0,通过设置属性
debugUnreturnedConnectionStackTraces
未返回的连接超时
。我想知道是否有办法找到未关闭的
PreparedStatement
,因为今天我找到了如下代码:

...
ps=dbConnection.prepareStatement(qry);
rs=ps.executeQuery();   
if(!rsCandItem.next())//to check Result Set has rows
{
rs.close();
qry = "SELECT * FROM TABLE1";
ps=dbConnection.prepareStatement(qry); //same PreparedStatement object is used without closing previous instance
rs=ps.executeQuery();
}
...

我猜使用相同的
PreparedStatement
object(ps)而不关闭它是错误的/不好的做法,如果我错了,请纠正我。因此,我想使用c3p0(或任何其他方式)未关闭的
PreparedStatement
进行日志记录。有什么办法吗?

除非驱动程序断开,否则关闭
连接也应关闭相关语句和
结果集。正如您所说,即使在特定情况下它们可能不会导致问题,也不关闭它们是一种不良做法


由于连接池处理
连接(它们是会泄漏资源的连接),因此不太可能存在用于观察其他内容的设置。

因此,无法找出现有项目中遵循的此类不良做法。我只需要检查每个代码?您可以尝试findbugs或其他工具,看看它们是否可以识别未关闭的资源。