mybatis-plus分页插件的配置和相关使用

57 阅读1分钟

1.首先创建一个配置类: config/MybatisPlusConfig.java

@Configuration
@MapperScan("com.demo.mapper")
public class MybatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

测试代码:

@Test
public void testPage(){
    Page<User> page=new Page<>(1,3);//查询的页码和数据的个数。(当前查到的数据是第一页三条数据)
     userMapper.selectPage(page, null);
    System.out.println("page = " + page);
}

然后一个简单的分页功能就实现了。

SELECT id,name,age,email,is_deleted FROM user WHERE is_deleted=0 LIMIT ?

 Columns: id, name, age, email, is_deleted
<==        Row: 2, 小红, 22, xiaohong@qq.com, 0
<==        Row: 3, 小明, 28, xiaoming@qq.com, 0
<==        Row: 4, 小明, 21, xiaoming@qq.com, 0
<==      Total: 3

分页相关数据的获取

@Test
public void testPage(){
    Page<User> page=new Page<>(1,3);//查询的页码和数据的个数。(当前查到的数据是第一页三条数据)
     userMapper.selectPage(page, null);
    System.out.println("page = " + page);
    System.out.println("获取分页查询得到的数据:"+page.getRecords());
    System.out.println("获取总页数 = " + page.getPages());
    System.out.println("获取当前显示的页数 = " + page.getCurrent());
    System.out.println("获取数据库中的总数据数 = " + page.getTotal());
    System.out.println("是否还有下一页? = " + page.hasNext());
    System.out.println("是否还有上一页? = " + page.hasPrevious());
}

自定义分页功能

定义一个分页接口

Page<User> selectPageVO(@Param("page") Page<User> page,@Param("age") Integer age);

定义这个接口对应的sql:

<!--    Page<User> selectPageVO(@Param("page") Page<User> page,@Param("age") Integer age);-->
    <select id="selectPageVO" resultType="User">
    select id,name,email,age from user where age >#{age}
    </select>

测试自定义的分页功能:

@Test
public void testPageVO(){
    Page<User> page=new Page<>(1,3);
    userMapper.selectPageVO(page,23);
    System.out.println(page);
}

查询的是年龄大于23的数据然后在进行分页操作。