Java 在jdbctemplate中的queryforobject方法中创建可滚动的结果集

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

我在我的项目中使用SpringJDBCTemplate,我需要为我的映射程序创建一个可滚动的结果集。 我已经为getAll()方法完成了这项工作,它如下所示:

@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();
    }
}