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
声纳问题“;getxyz(String,String)可能无法清理java.sql.ResultSet";_Java_Sonarqube - Fatal编程技术网

声纳问题“;getxyz(String,String)可能无法清理java.sql.ResultSet";

声纳问题“;getxyz(String,String)可能无法清理java.sql.ResultSet";,java,sonarqube,Java,Sonarqube,我面临以下声纳问题,代码如下: getxyz(字符串,字符串)可能无法清理java.sql.ResultSet 即使在关闭CallableStatement public String getxyz(String x, String y) throws DBException { CallableStatement castat = null; String result = null; try { castat = getConnectio

我面临以下声纳问题,代码如下:

getxyz(字符串,字符串)可能无法清理java.sql.ResultSet

即使在关闭
CallableStatement

public String getxyz(String x, String y)

    throws DBException {

    CallableStatement castat = null;
    String result = null;
    try {

        castat = getConnection().prepareCall(

                "{call xyz_prc(?,?,?)}");

        castat.setString(1, y);

        castat.setString(2, x);

        castat.setString(3, "0");

        castat.executeQuery();
        result = castat.getString(4);

    } catch (SQLException se) {

        log.error("getxyz |  ::SQLException",se);

        throw new DBException(se.getMessage());

    } finally {

        try {

            if(castat!=null) {

                castat.close();

            }

        } catch (SQLException se) {

            log.error("getxyz |  ::SQLException",se);

        }

        closeConnection();
    }

    return result;
}
CallableStatement
仅在方法中使用

而不是此

castat.executeQuery();
result = castat.getString(4);
您可能希望最初编写此代码(因为您正在读取callablestatement,而不是存储过程调用的结果):


当然,结果集应该在finally块中正确关闭。

我建议切换到更现代的。现在是2018年,任何人都不应该再手工编写try/close/finally代码。您的SonarQube版本和已安装插件的版本是什么?
ResultSet rs= castat.executeQuery();
if (rs.next()) {
     result = rs.getString(4);
}