当数据量过大时,通常会采用分页查询的方式,循环处理数据。
比较常用的就是sql 中使用 limit 进行分页查询,然后for循环处理数据。但是这样的方式虽说可行,但是代码未免有些繁琐。
比如说:sql 语句 要写两个方法 一个count 查询所有数据数量,第二个 limit 分页查出list
为了简化分页查询,可采用如下方式:
1.sql语句:user表 每次查询1000条,id自增(默认查询结果是按照id从小到大的)
select * from user
where id > #id#
limit 1000
2.DAO方法:queryUserList(long id)
3.controller层
现在查询出所有表中的数据并处理
long id = 0;
List<User> userList = queryUserList(id);
while (userList !=null){
for(User user : userList ){
//这里进行数据处理
id = user.getId();//记录每次处理的id,记录下最后处理的一个,以便循环使用
}
userList = queryUserList(id);//这里继续向下查询1000记录,直到查询不到记录 为止
}