SQL语句:
首先明确:起始索引从0开始,是第一个参数.
第二个参数是查询返回记录数,即每页展示的数量.
该语句表示从第一条语句开始查询,一次查询五条数据
select * from dept limit 0,5
查询第二页数据:
select * from dept limit 5,5
起始索引公式 = (页码-1)*每页记录数
获取总记录数:
select count(*) from emp
三层架构的分析
查询总记录数和每页的记录
封装PageBea并返回
组装PageBean对象
实体类
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PageBean {
private Long total;//总记录数
private List rows;//数据列表
}
当下主流的方式-分页查询插件
三层架构的核心代码--通用分页模板
@Slf4j
@RestController
public class EmpController {
@Autowired
EmpService empService;
@GetMapping("/emps")
public Result page(@RequestParam(defaultValue = "1") int page, @RequestParam(defaultValue = "10") int pageSize)
{
log.info("分页查询参数{},{}",page,pageSize);
PageBean pagebean = empService.page(page,pageSize);
return Result.success(pagebean);
}
}
@Service
public class EmpServiceImpl implements EmpService {
@Autowired
EmpMapper empMapper;
@Override
public PageBean page(int page, int pageSize){
PageHelper.startPage(page,pageSize);
List<Emp> empList = empMapper.list();
Page<Emp> p = (Page<Emp>)empList;
PageBean pageBean = new PageBean(p.getTotal(),p.getResult());
//封装实体类
return pageBean;
}
}
@Mapper
public interface EmpMapper {
@Select("select * from emp")
public List<Emp> list();
}