Springboot 快速学会使用 JPA 分页查询
程序员文章站
2022-04-30 13:59:34
...
如果还不知道springboot怎么使用JPA的,先参考这篇 Springboot快速整合JPA实现增删查改:https://blog.csdn.net/qq_35387940/article/details/102541311
接下来回到正题
示例场景,将下面表数据分页查询出来:
简单模拟,
mapper:
@Query(value="select * from user where id > (:id)",nativeQuery = true)
Page<User> findById(@Param("id") Integer id, Pageable pageable);
service :
Page<User> findById( Integer id, Pageable pageable);
impl:
@Override
public Page<User> findById(Integer id, Pageable pageable) {
return userMapper.findById(id,pageable);
}
controller:
最好看看代码里面的注释,使用分页的参数要素
@GetMapping("/getListPaging/{pageNum}")
public String pageable(@PathVariable("pageNum") Integer pageNum) {
//模拟每页条数
int pageSize = 3;
/**
* Pageable是接口,PageRequest是接口实现
* PageRequest的对象构造函数有多个
* pageNum是页数,初始值是0(按照我们默认思维第一页应该是1,所以我们设置的页数为pageNum-1)
* size是查询结果的条数
* 后两个参数参考Sort对象的构造方法 第一个是代表排序方式,第二个是排序依据(下面代码例子,id实体类的主键,按照id排序)
*/
Pageable pageable = new PageRequest(pageNum - 1, pageSize, Sort.Direction.ASC, "id");
//模拟传入id值为2
int id = 2;
Page<User> pageList = userService.findById(id, pageable);
System.out.println("总条数是:" + pageList.getTotalElements() + "\n" + "总页数是:" + pageList.getTotalPages() + "\n" + "每页条数是:" + pageSize);
//将查询出来的数据转为list
List<User> dataList = pageList.getContent();
String jsonStr = JSON.toJSONString(dataList);
System.out.println("当前为第" + pageNum + "页数据:" + "\n " + jsonStr);
System.out.println("-------------------------------------------");
//按照当前页数、分页大小,查出的分页结果集合
for (User user : pageList.getContent()) {
System.out.println(user.toString());
}
return jsonStr;
}
调用接口,查看控制台:
http://localhost:8055/getListPaging/1 (第一页的数据)
控制台:
上一篇: Springboot实现两个实体类用一个数组接收新增
下一篇: SpringData JPA分页查询
推荐阅读
-
Spring data jpa的使用与详解(复杂动态查询及分页,排序)
-
在Spring Boot中使用Spring-data-jpa实现分页查询
-
SpringBoot中使用Spring Data Jpa 实现简单的动态查询的两种方法
-
springboot使用JPA时间类型进行模糊查询的方法
-
Spring data jpa的使用与详解(复杂动态查询及分页,排序)
-
Springboot 之 使用JPA进行分页操作
-
Springboot 快速学会使用 JPA 分页查询
-
SpringBoot2.0使用Jpa快捷实现条件分页查询
-
SpringBoot 中 Jpa PageRequest 分页 + Example 多参数 单表查询