1、在usermapper接口类中,编写两个查询sql,分别是分页查询和数据总数查询。
sql中的( limit num1,num2),num1代表从第几条数据查,可不写,不写默认为0,num2,为查询多少条数据,也就是显示多少条。
例如,SELECT * FROM demo LIMIT 1, 2 就是从第二条开始,查两条数据,也就是 第二 第三条。
SELECT * FROM demo LIMIT 5 查前5条数据。
@Select("SELECT * FROM demo LIMIT #{pageNum}, #{pageSize}") //查询分页数据
List<userEntity> findpage(Integer pageNum,Integer pageSize);
@Select("SELECT COUNT(*) FROM demo ") //查询数据总数 返回一个int 类型的数字
Integer total();
2、在userservice类中调用usermapper中的两条查询语句。
public List<userEntity> findpage(Integer pageNum, Integer pageSize) { //分页接口
return Usermapper.findpage(pageNum, pageSize);
}
public Integer total(){ //查询数据总数接口
return Usermapper.total();
}
3、在usercontroller中创建查询分页接口。
@GetMapping("/page") //查询所有
public Map<String, Object> findPage(@RequestParam Integer pageNum, //pageNum, 第几页,pageSize,每页多少条数据
@RequestParam Integer pageSize) {
pageNum = (pageNum - 1) * pageSize;
Integer total = UsersService.total();
List<userEntity> data = UsersService.findpage(pageNum, pageSize);
Map<String, Object> res = new HashMap<>();
res.put("total",total);
res.put("data",data);
return res;
}
因为在这接口中发送了两个查询请求,返回类型不一致,所以用map集合包裹一下。
最后测试,接口查询地址:`http://localhost:8080/user/page?pageNum=2&pageSize=2`路径换成你自己的实际路径即可