Java 在jdbctemplate中的queryforobject方法中创建可滚动的结果集
我在我的项目中使用SpringJDBCTemplate,我需要为我的映射程序创建一个可滚动的结果集。 我已经为getAll()方法完成了这项工作,它如下所示:Java 在jdbctemplate中的queryforobject方法中创建可滚动的结果集,java,resultset,jdbctemplate,scrollable,Java,Resultset,Jdbctemplate,Scrollable,我在我的项目中使用SpringJDBCTemplate,我需要为我的映射程序创建一个可滚动的结果集。 我已经为getAll()方法完成了这项工作,它如下所示: @Override public List<T> getAll() { return jdbcTemplate.query(getPreparedStatementCreator(getQueryToGetAll()), mapper); } private PreparedStatementCreator getP
@Override
public List<T> getAll() {
return jdbcTemplate.query(getPreparedStatementCreator(getQueryToGetAll()), mapper);
}
private PreparedStatementCreator getPreparedStatementCreator(String query) {
return connection -> connection.prepareStatement(query, ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
@覆盖
公共列表getAll(){
返回jdbcTemplate.query(getPreparedStatementCreator(getQueryToGetAll()),映射器);
}
私有PreparedStatementCreator getPreparedStatementCreator(字符串查询){
返回连接->连接.prepareStatement(查询,ResultSet.TYPE\u滚动\u不敏感,
结果集CONCUR_可更新);
}
它可以工作,因为JdbcTemplate有下一个方法:
public <T> List<T> query(PreparedStatementCreator psc, RowMapper<T> rowMapper)
公共列表查询(PreparedStatementCreator psc,RowMapper RowMapper)
因此,我实现了PreparedStatementCreator作为第一个参数,并将mapper作为第二个参数
现在我需要创建getById()方法,但是我在JdbcTemplate中没有找到一个合适的方法,该方法使用PreparedStatementCreator和mapper作为参数
这是我的getById()方法:
@覆盖
公共可选getById(整数id){
试一试{
返回可选的.of(jdbcTemplate.queryForObject(getQueryToGetById(),mapper,id));
}捕获(EmptyResultDataAccessE异常){
返回可选的.empty();
}
}
如何为其创建可滚动的结果集
@Override
public Optional<T> getById(Integer id) {
try {
return Optional.of(jdbcTemplate.queryForObject(getQueryToGetById(), mapper, id));
} catch (EmptyResultDataAccessException e) {
return Optional.empty();
}
}