最近在写一个分布式的项目,虚心学习,一起进步。
我们知道分页查询数据然后展示是一个很常见的功能,这里我们不考虑使用前端框架提供的分页插件,我们使用一个叫pagehelper的工具
第一步:使用Maven项目导入依赖(其他依赖比如Mybatis的依赖等也要导入):
<!--分页-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
第二步:创建一个查询工具类来存储分页后的结果(注意这里需要实现Serializable序列化接口):
//这里的get和set方法和其他的有参构造无参构造就省略了,还是自己补全的好
public class PageResult implements Serializable {
private List list;//当前页数据集
private Long total;//总记录
}
第三步:创建方法实现模糊查询:
public PageResult search(int pageNum, int pageSize,TbBrand condition) {
//1、设置分页参数,pageNum:当前查询第几页 pageSize:每页显示多少条
PageHelper.startPage(pageNum,pageSize);
//拼接查询条件
TbBrandExample example = new TbBrandExample();
TbBrandExample.Criteria criteria = example.createCriteria();
criteria.andNameLike("%"+condition.getName()+"%");
// SELECT * FROM `tb_brand` b WHERE b.`name` LIKE '%测试%'
//2、调用dao方法实现查询,返回结果强制转换成Page对象
Page page = (Page) brandMapper.selectByExample(example);
List list = page.getResult();//当前页数据集
long total = page.getTotal();//据库中该表中的总记录数
// 3、封装返回结果
PageResult pageResult = new PageResult(list, total);
return pageResult;
}