gpt4 book ai didi

java - 从 Spring jdbcTemplate 中的 RowMapper 获取预定义大小的列表

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:45 25 4
gpt4 key购买 nike

我有以下代码,其中根据batchSize创建对象列表
任何人都可以建议如何实现这个,我正在考虑检查 rowmapper 类中的 rownum 是否等于批量大小,那么问​​题是
如何从 rowmapper 实现返回并创建 List

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;
}

}

}

最佳答案

我认为你基本上有两个选择:

然而,第二个选项并不能保证从DB服务器只返回这么多结果,因为额外的结果可能会被JDBC本身删除=>它的性能可能会较低(对于oracle情况,请参阅:How to limit number of rows returned from Oracle at the JDBC data source level?)

我认为在代码中删除它是最糟糕的选择,因为您需要自己迭代它,而且您没有性能增益(始终从数据库中选择所有内容)。

关于java - 从 Spring jdbcTemplate 中的 RowMapper 获取预定义大小的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14344555/

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