如何关闭preparedstatement

nwo49xxi  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(413)

我有下面的代码,我想关闭preparedstatement对象,因为它是作为一个来自sonar的bug引发的。

public myfunction() throws SQLException {

           PreparedStatementCreator preparedStatementCreator = new PreparedStatementCreator() {
                String query = "";//let us assume a query
                public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
                    PreparedStatement preparedStatement= connection.prepareStatement(query);
                    preparedStatement.setString();
                    preparedStatement.setString();
                }
            };
    int rows;
    try
    {
    rowNumbers = jdbcTemplate.update(preparedStatementCreator);
    }
    catch(....)
    {
    }
    catch(....)
    {
    }
    catch(....)
    {
    }
    }

如何关闭preparedstatement对象?我看到的大多数示例大多使用try/finally或try with resources,然后创建对象并使用它try and close in finally。但是,在这里,对象是在单独的函数中创建的,从那里返回,然后使用它。所以创造和使用发生在两个不同的地方。所以我想知道这两种方法
java 8之前
使用Java8尝试使用资源

8iwquhpp

8iwquhpp1#

在本例中,您不需要像spring那样关闭语句 JdbcTemplate 我会帮你的。换句话说,这是声纳的假阳性。
PreparedStatementCreator.createPreparedStatement(Connection con) (我的重点):
在此连接中创建语句。允许实现使用preparedstatements。jdbctemplate将关闭创建的语句。

相关问题