1

我有以下代码,其中我根据 batchSize 创建了对象列表,
任何机构都可以建议如何实现这一点,我正在考虑检查 rowmapper 类中的 rownum 是否等于批量大小,然后问题是
如何从 rowmapper 实现返回和创建列表

public class TestAppDao {
public JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {
    return jdbcTemplate ;
}

public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
    this.jdbcTemplate = jdbcTemplate;
}

public List<Circle> getAllCircle(int batchSize){
    String sql = "select * from circle";
    return jdbcTemplate.query(sql, new Object[]{}, new CircleMapper());
}

private static final class CircleMapper implements RowMapper<Circle>{

    @Override
    public Circle mapRow(ResultSet resultSet, int rowNum) throws SQLException {

        Circle circle = new Circle();
        circle.setId(resultSet.getInt(1));
        circle.setName(resultSet.getString(2));
        return circle;
    }

}

}

4

1 回答 1

1

我认为您基本上有两种选择:

然而,第二个选项并不能保证从DB服务器只返回这么多的结果,因为额外的结果可能会被JDBC自己剪切 => 它可能会降低性能(对于 oracle 案例,请参阅:如何限制从 Oracle 返回的行数在 JDBC 数据源级别?

我认为在你的代码中剪切它是最糟糕的选择,因为你需要自己迭代它而且你没有性能提升(总是从 DB 中选择所有)。

于 2013-01-15T18:49:58.080 回答