1.原生的分页方式
准备一个类 封装数据总条数(total) 和 分页后的数据(List) 传给前台,让前台解析,赋值给对应的form表单和总条数
//只是封装总条数 和分页数据 方便前台取值
@Data //一个插件:省略get/set/tostring/无参构造 方法
@AllArgsConstructor //有参构造
@NoArgsConstructor //无参构造
public class PageList<T> {
//总条数
private Long total = 0L;
//空数组:数据
private List<T> result = new ArrayList<>();
}
准备一个类 封装总条数 和 当前页码
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BaseQuery {
//当前页
private Integer currentPage;
//每页条数
private Integer pageSize;
//分页开始位置 javaBean 通过 get/set 取值赋值 #{begin}
public Integer getBegin(){
return (currentPage - 1) * pageSize ;
}
}
在Service层中 一个方法中的业务代码(分页):
@Override
public PageList<Department> findByQuery(DepartmentQuery query) {
//总条数
Long total = departmentMapper.findCount(query);
//无数据
if (total == 0L) {
return new PageList<>();
}
//有数据
List<Department> list = departmentMapper.findByAll(query);
//返回给Controller层 一个PageList<>对象:封装了总条数和分页后的数据
return new PageList<>(total, list);
}
在*mapper.xml中 sql语句:
LIMIT #{begin},#{pageSize}
2.pageInfo(PageHelper分页)
导包:
<!-- pagehelper分页插件依赖 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>
准备一个类 封装 当前页码 和每页条数
@Data
public class BaseQuery {
//当前页
private Integer pageNum ;
//每页条数
private Integer pageSize ;
}
}
Service层:一个方法中的业务代码
@Override
public PageInfo<Role> findByPage(RoleQuery roleQuery) {
//固定语法
PageHelper.startPage(roleQuery.getPageNum(),roleQuery.getPageSize());
//如果使用PageHelper分页的话,那么下面的查询结果会自动地封装成Page对象
Page<Role> page = roleMapper.findAll(roleQuery);
return new PageInfo<Role>(page);
}
准备一个类 封装数据总条数(total) 和 分页后的数据(List) 传给前台,让前台解析,赋值给对应的form表单和总条数
//只是封装总条数 和分页数据 方便前台取值
@Data //一个插件:省略get/set/tostring/无参构造 方法
@AllArgsConstructor //有参构造
@NoArgsConstructor //无参构造
public class PageList<T> {
//总条数
private Long total = 0L;
//空数组:数据
private List<T> result = new ArrayList<>();
}
Controller层:
public PageList<T> xxx(){
//pageInfo 底层封装了 总条数 和 分页后的数据
PageInfo pageInfo = ***service. findByPage() ;
//pageInfo 自带的2个方法 取出总条数 和数据
return new PageList<>(pageInfo.getTotal(),pageInfo.getList() )
}