Mybatis分页插件PageHelper使用教程
添加依赖<!--添加分页插件--><!--只配置当前这一个依赖 PageHelper不生效--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.10&l
·
添加依赖
<!--添加分页插件-->
<!--只配置当前这一个依赖 PageHelper不生效-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.10</version>
</dependency>
<!--还需要把这个依赖添加到pom当中 自动排序和分页就可以使用了-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.3</version>
</dependency>
后台关键的代码
实现类中的关键代码
@Override
public PageVue<Album> query(AlbumQuery albumQuery, Integer pageSize, Integer pageNum) {
com.github.pagehelper.Page<Album> page = PageHelper.startPage(pageNum,pageSize);//分页插件类的加载,它自动为下面的查询分页 pageNum是页码 pageSize是查询的数据数量 即每页多少
// 或者直接使用PageHelper.startPage(pageNum,pageSize) 它会为下面的list分页查询
List<Album> albums = albumMapper.query(albumQuery);//从数据库中查询满足条件的
PageVue<Album> res = new PageVue<>(albums);//将我需要的数据封装到另一个自定义类中
System.out.println("总数为:"+page.getTotal());
res.setTotal(page.getTotal());//设置总数
return res;
}
AlbumQuery 类
是我自定义的包含 查询条件 的类
public class AlbumQuery {
private String nameLike;//相册名称
private String tagLike;//相册类型
private String userLike;//用户名称 弃用
.............
}
PageVue类
是我自定义的类,用来返回查询信息和数据总数
public class PageVue<T> implements Serializable {
private List<T> list;
private long total;
.............
}
sql
<!--Vue 分页查询 名称用模糊查询,类型不用-->
<select id="query" parameterType="com.setup.entity.AlbumQuery" resultType="com.setup.entity.Album">
select *
from album a
<where>
<if test="nameLike !=null and nameLike !='' ">
and a.a_name like "%"#{nameLike}"%"
</if>
<if test="tagLike !=null and tagLike !='' ">
and a.a_theme like #{tagLike}
</if>
and a.a_status = 1 and a.a_authority = 2
</where>
</select>
控制层
//前端基于Vue写的
//查询,分页 可以根据相册名称,类型或用户名称查询
@CrossOrigin(origins ="*",maxAge = 3600) //跨域注解
@GetMapping(value = "/pageVue")
@ResponseBody
public PageVue<Album> query(AlbumQuery albumQuery,
@RequestParam(value = "pageSize") Integer pageSize,
@RequestParam(value = "pageNum") Integer pageNum){
System.out.println(albumQuery);
System.out.println(pageSize+" ::"+pageNum);
return recommendService.query(albumQuery, pageSize, pageNum);
}
PageHelper分页的实现原来是在我们执行SQL语句之前动态的将SQL语句拼接了分页的语句,从而实现了从数据库中分页获取的过程。
参考:
Mybatis分页插件PageHelper使用教程(图文详细版)
配置参考:
Pagehelper分页插件的配置和各种使用方式
原理参考:浅析pagehelper分页原理
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)