我有下面的代码,我想在它上面关闭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。然而,在这里,对象是在单独的函数中创建的,它从那里返回,然后被使用。所以创造和使用发生在两个不同的地方。所以我想知道处理这件事的两种方法
在本例中,您不需要关闭语句,因为Spring的JdbcTemplate
将为您完成这项工作。换句话说,这是声纳的假阳性。
如PreparedStatementCreator的javadoc所述。createPreparedStatement(连接con)
(强调我的):
在此连接中创建一条语句。允许实现使用准备语句。JdbcTemboard将关闭创建的语句。
我正在尝试更新我的mySQL数据库中的一个条目。在这里可以很好地工作,例如: 但在这里,我总是得到一个错误,但不知道为什么。 这是我的错误:
我用的是c3p0。我建立了一个池,如下所示, 我有一个对象,准备初始化的几个准备好的语句。为了做到这一点,我从PooledDataSource中抓取一个连接(),然后准备一个语句(例如,)。准备好的语句作为私有变量存储在对象中,当前连接在初始化结束时关闭()。准备好的语句用于对象的方法中。 对于更新数据库的准备好的语句,这很好。但是,当我调用一个使用预处理语句()来查询数据库的方法时,我会得到以下
我有一个网站,点击量很大。我遇到过一些问题,包括JDBC连接错误。 我对结束PreparedStatement有点困惑。我需要关闭PreparedStatement吗?还是只需要关闭语句就足够了? 另外,呢?我也需要关闭它吗?
我正试图用BouncyCastle CMS签署一份PDF文件。签名有效,但Adobe Reader告诉我它还没有准备好LTV。 据我所知,CRL嵌入在CMS SignedData中。证书也被嵌入其中。还嵌入了时间戳。 签名是一个分离的签名,放在“预留空间”。 为什么签名还没有准备好?我是不是做错了什么? 签名测试-PDF:http://www.filedropper.com/outputx 代码:
想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 我想创建一个应用程序,使用户能够< code >捕捉屏幕他们的Android设备。就像我们在电脑中使用的任何屏幕录制软件一样,请帮助我 编辑 : 1 这里
问题内容: 通过JDBC对pgbouncer执行批处理查询时,出现以下错误: 我在网上发现了错误报告,但它们似乎都适用于Postgres 8.3或更低版本,而我们正在使用Postgres 9。 这是触发错误的代码: 有人看过吗? 编辑1: 事实证明,这是使用 会话池 以外的任何方法时都会发生的pgBouncer问题。我们正在使用 事务池 ,它显然不支持准备好的语句。通过切换到 会话池 ,我们解决了