MyBatis Plus应用(三)分页插件的实践
MyBatisPlusadmin 发布于:2022-07-03 10:48:04
阅读:loading
数据分页在日常应用开发中会被经常使用,MyBatis Plus提供了分页插件的支持,使得对于查询分页的功能实现变得更加的简单了,若非如此需要我们手动编写count语句和列表查询语句,同时count语句某些场景还需要手动的进行SQL语句优化,而这些MyBatis Plus的分页插件都已经替我们实现好了,同时兼容多种数据库的应用。本文通过两个测试案例的实践来展示具体的分页应用,参考实现过程如下。
由于是SpringBoot项目环境,需要配置PaginationInterceptor组件,此步骤必不可少,若缺少后本篇文章中的测试代码虽可正常运行,但仅会被视为普通查询,查询的数据结果并非为实际的分页查询语句,需要格外注意。
package cn.chendd.mybatisplus.config;
import ...;
/**
 * MybatisPlusConfig
 *
 * @author chendd
 * @date 2022/7/3 10:40
 */
@Configuration
public class MybatisPlusConfig {
    /**
     * 分页插件配置
     * @return 分页插件配置
     */
    @Bean
    public PaginationInterceptor getPaginationInterceptor(){
        PaginationInterceptor interceptor = new PaginationInterceptor();
        return interceptor;
    }
}本次测试案例通过调用内置的查询分页(支持查询条件的传递)和自定义Mapper函数的方式来展示分页插件的应用,更多的应用代码可转至示例源码查看,本文就罗列出部分的代码,参考如下:
 package cn.chendd.mybatisplus;
import ...;
/**
 * 分页测试
 *
 * @author chendd
 * @date 2022/7/3 9:14
 */
public class PageTest extends BaseBootstrapTest {
    @Resource
    private UserService userService;
    @Test
    public void page() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        IPage<User> pageFinder = new Page<>(1 , 10);
        IPage<User> page = this.userService.page(pageFinder, queryWrapper);
        System.out.println(String.format("pageNumber = %d , pageSize = %d , pages = %d , totals = %d , data = %s" ,
                page.getCurrent() , page.getSize() , page.getPages() , page.getTotal() , page.getRecords().toString()));
    }
    @Test
    public void pageForMapper() {
        IPage<User> pageFinder = new Page<>(1 , 10);
        IPage<User> page = this.userService.pageList(pageFinder);
        System.out.println(String.format("pageNumber = %d , pageSize = %d , pages = %d , totals = %d , data = %s" ,
                page.getCurrent() , page.getSize() , page.getPages() , page.getTotal() , page.getRecords().toString()));
    }
}/**
 * 用户信息Mapper
 *
 * @author chendd
 * @date 2022/6/30 21:29
 */
public interface UserMapper extends BaseMapper<User> {
    /**
     * 查询数据分页
     * @param pageFinder 分页参数
     * @return 分页数据
     */
    IPage<User> pageList(IPage<User> pageFinder);
}<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.chendd.mybatisplus.user.mapper.UserMapper">
    <!-- 查询数据分页 -->
    <select id="pageList" resultType="cn.chendd.mybatisplus.user.model.User">
        select t1.* from Sys_User t1
    </select>
</mapper>
(基于对象的查询分页会增加逻辑删除字段)

(自定义Mapper的查询分页需要自己增加逻辑删除字段)
点赞
                
            
                
            
                
            
                
            
                
            
发表评论
        
        当前回复:作者
        
    
    
    
                                    
                                    
                                    
                                    
                                    
                                    
欢迎来到陈冬冬的学习天地 | 学习与经验整理分享平台