转载

Springboot使用Mybatis插件PageHelper 总结

前言

最近项目中用到pagehelper插件,这里总结一下,虽然简单,但怕以后忘记。本文参考意义不大,大牛请忽视。:open_mouth:

使用步骤

pom

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.2.4</version>
</dependency>复制代码

yaml

pagehelper:
    helper-dialect: mysql  #指定DBMS
    reasonable: true
    support-methods-arguments: true
    params: count=countSql
复制代码

示例

用下面这张表category为例

Springboot使用Mybatis插件PageHelper 总结

controller层

/**
     * 分页查询category
     * @return
     */
    @GetMapping("/list/{page}/{size}")
    public QueryResult<Category> getCategoryByPage(@PathVariable(value = "page") int page,
                                                   @PathVariable("size") int size) {
        return categoryService.getCategoryByPage(page, size); 
    }复制代码

service层

/**
     * 分页查询category
     *
     * @return
     */
    public QueryResult<Category> getCategoryByPage(int page, int size) {
        PageHelper.startPage(page, size);  
        Page<Category> categoryPage = categoryMapper.getCategoryByPage(); // 调用dao,返回类型是 Page<>
        List<Category> result = categoryPage.getResult();  // 得到result,返回类型是 List<>
        // 返回类型封装
        QueryResult<Category> queryResult = new QueryResult<>(); 
        queryResult.setList(result);
        queryResult.setTotal(result.size());
        return queryResult;
    }复制代码

dao层

返回类型要用Page<分页的模型>

/**
     * 分页查询category
     * @return
     */
    public Page<Category> getCategoryByPage();复制代码

Mapper.xml

<select id="getCategoryByPage" resultType="com.xuecheng.framework.domain.course.Category">
        select *
        from category
</select>复制代码

注意

select *
        from category    后面没有加 ;  结尾,加了会报错(如下)复制代码

Springboot使用Mybatis插件PageHelper 总结

后面的limit就是PageHelper作用上去的,加了 ;  号就会报语法错误   /(ㄒoㄒ)/~~

以上就是一个比较完整的PageHelper使用流程, 官网教程 也很详细,可以查阅

原文  https://juejin.im/post/5e9043fd6fb9a03c53518981
正文到此结束
Loading...