创建MyMetaObjectHandler配置类
此时可以删除主类中的 @MapperScan 扫描注解

@EnableTransactionManagement
@Configuration
@MapperScan("com.songzixian.mapper*") //这里添加了`@MapperScan`注解 启动无需再添加,因为作用都一样
public class MybatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
        // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求  默认false
        // paginationInterceptor.setOverflow(false);
        // 设置最大单页限制数量,默认 500 条,-1 不受限制
        // paginationInterceptor.setLimit(500);
        // 开启 count 的 join 优化,只针对部分 left join
        paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
        return paginationInterceptor;
    }
}

Mybatis-plus分页插件1.png
编写Controller

/**
     * Mybatis-Plus分页实现
     * @param current
     * @param size
     * @return
     */
    @RequestMapping("PagePlugInMybatisPlus")
    @ResponseBody
    public Page<User> PagePlugInMybatisPlus(long current,long size){
        //创建Page对象: 1=当前页 , 5=每页显示记录数
        Page<User> page = new Page<>(current,size); //例如传入(1,5)

        //调用Mybatis Plis的分页查询的方法
        //调用ybatis Plis的过程中,底层封装,把分页的所有数据封装到page对象中
        userMapper.selectPage(page,null);

        //通过Page对象获![Mybatis-plus分页插件2.png][2]取分页信息
        //long current = page.getCurrent();//当前页
        List<User> records = page.getRecords(); //每页的数据 list集合
        //long size = page.getSize(); //每页显示的条数
        long total = page.getTotal(); //总记录数
        long pages = page.getPages(); //总页数

        boolean pagehasNext = page.hasNext(); //下一页
        boolean pagehasPrevious = page.hasPrevious(); //上一页

        return page;
    }

访问:http://localhost:8888/PagePlugInMybatisPlus?current=1&size=5
返回数据结果
Mybatis-plus分页插件2.png
sql语句

SELECT id,name,age,email,create_time,update_time,version FROM user LIMIT 0,5

Mybatis-plus分页插件3.png

Last modification:May 14, 2020
如果觉得这篇技术文章对你有用,请随意赞赏