gpt4 book ai didi

java - jdbcTemplate.query(PreparedStatementCreator psc, ResultSetExtractor rse) 不返回任何结果集

转载 作者:行者123 更新时间:2023-12-02 08:53:07 27 4
gpt4 key购买 nike

我正在将连接的创建转换为使用 JdbcTemplate 类,该类处理资源的创建和释放。下面显示的实现之一没有返回结果集,尽管同一查询的原始结果集返回了记录。我转换了下面的代码

ps = connection.prepareStatement(strQuery, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ps.setLong(1, getId());
objRs = ps.executeQuery();

如下所示。我使用 StreamingStatementCreator 的原因是因为我需要设置ResultSet.TYPE_SCROLL_INSENSITIVE 和 ResultSet.CONCUR_READ_ONLY。

objRs = (ResultSet) jdbcTemplate.query(new StreamingStatementCreator(strQuery),
new PreparedStatementSetter() {
public void setValues(PreparedStatement preparedStatement) throws SQLException {
preparedStatement.setLong(1, getId());
}
}, new CustomResultSetExtractor());
public class CustomResultSetExtractor implements ResultSetExtractor<ResultSet>{
public ResultSet extractData(ResultSet resultSet) throws SQLException, DataAccessException {
return resultSet;
}
}

我对这些方法不熟悉。我试图寻找示例,我觉得代码是正确的,因为也许我遗漏了一些东西。第一种情况返回 objRs 中的值,第二种情况什么也不返回。

最佳答案

方法query(PreparedStatementCreator psc, ResultSetExtractor<T> rse)不返回ResultSet 。它使用 ResultSet 调用第二个参数作为参数并返回它返回的对象。

所以你应该处理ResultSetCustomResultSetExtractor并作为处理结果返回另一个对象。

关于java - jdbcTemplate.query(PreparedStatementCreator psc, ResultSetExtractor<T> rse) 不返回任何结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60656782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com