springboot整合pagehelper分页插件

1、既然要整合需要在pom文件中引入pagehelper分页的插件。
 <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.5</version>
 </dependency>
2、分页插件的配置

这里的话我是配在 application.properties配置文件中。

pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
pagehelper.page-size-zero=true
4、实体类

设计一个实体类用来控制层输入分页的值,page和size是分页要传的。

public class Query {

    /** 当前页 **/
    private Integer page;

    /** 每页大小 **/
    private Integer size;

    /** 搜索条件 **/
    private String search;

     //...此数省略get和set方法
}
3、controller控制层

这里的话用上面Query对象来接收对应的参数,主要是两个字段page和size,page一个是当前第几页,size每页的大小。前端的话要传入这两个值,至于怎么传入过来就行,可以问号传参,路径传参都行,我这里用的是对象的形式。分页插件给我们提供PageInfo类用来封装页面信息,我们把查询的结果对象设到pageInfo类里面再进行返回pageInfo对象。

 @PostMapping ("/query")
public ResultVO queryAiAccountPage(@RequestBody Query query){
     List<AiAccountVO> aiAccountVO = aiAccountService.queryAiAccountPage(query);
  	PageInfo pageInfo = new PageInfo(aiAccountVO);
    return ResultVO.success(pageInfo);
 }
4、service服务层

插件提供PageHelper.startPage(int PageNum,int PageSize)方法;再传入dao层之前要用来设置当前页和每页的数据条目数,我们把传入的对象设置进去。

public List<AiAccountVO> queryAiAccountPage(Query query) {
     PageHelper.startPage(query.getPage(), query.getSize());
     return aiAccountMapper.queryAiAccountAll(query);
}
5、Dao层和Mybatis.xml层

其实Dao层和Mybatis.xml不变,还是根据你的查询语句和查询条件进行查询,不用做改动。
dao层

@Mapper
public interface AiAccountMapper {
    List<AiAccountVO> queryAiAccountAll(Query query);
}

mybatis.xml

<select id="queryAiAccountAll" parameterType="com.game.manager.aiaccount.domain.Query"
        resultMap="queryAiAccountForBlod">
    SELECT
    	*
    FROM
    ai_account_info
    <where>
        <if test="search != null and search != ''">
            <bind name="pattern" value="'%' + search + '%'"/>
            nick_name like #{pattern}
        </if>
    </where>
</select>
6、测试接口

这里的话我用postman进行测试一下,这里的话page传1,当前第一页,size传2,每页显示2条。

在这里插入图片描述

7、排序

PageHelper分页插件还可以进行查询结果排序
如:PageHelper.orderBy(“weight desc”); 再传入dao层前进行设置,这里的话我是按权重就行降序,需要传两个值,一个是你数据库表对应的需要判断的字段名,第二个是排序规律(desc为降序,asc为升序)。
也可以一步到位,PageHelper.startPage(pageNum, pageSize, orderBy); orderBy是一个string类型的,也就是上面传入的两个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值