我见过很多例子如下。但我没有得到任何解决我的问题的方法。
我使用以下代码来获取所有用户。
List<User> users = this.jdbcTemplate.query(
"select * from user",
new RowMapper<User>() {
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setFirstName(rs.getString("firstname"));
user.setLastName(rs.getString("lastname"));
return user;
}
});
但上面代码的问题是,如果我在users表中有10万条记录,我将无法将数据保存在列表中。
所以我在fetchSource(100)
上使用了jdbcTemplate
函数。
我无法获得所有记录,它在两者之间停止。
请建议做什么。
[编辑] 为了添加以下问题,我将数据从oracle数据库表索引到elsticsearch。我不想一个接一个地处理,因为索引1000万条记录会很差。它不是一个Web应用程序,它是独立程序,它是基于spring boot构建的。
答案 0 :(得分:3)
如果您希望逐个处理所有行而不将其保留在内存中,则可以使用RowCallbackHandler
。
如果您只想获取几行,只需为查询添加限制select * from user limit 100