Mybatis_plus——标准分页功能制作

 

mybatispuls中提供分页查询中需要两个参数,一个是IPage接口的实现类,还有一个后面说。

IPage有且只有一个实现类Page类型在里面已经提供有了,传两个参数即可使用,一个是页码值,一个是每页显示数据的条数。查询完之后可以通过Page提供的物种get方法获取各项信息。

  @Test
    public void testGetbypage(){
        IPage page=new Page(1,2);
        userMapper.selectPage(page,null);
        System.out.println("当前页码值"+page.getCurrent());
        System.out.println("每页显示数"+page.getSize());
        System.out.println("一共多少页"+page.getPages());
        System.out.println("一共多少条数据"+page.getTotal());
        System.out.println("数据"+page.getRecords());
    }

 但是从上面的这个查询结果可以看见后三条有问题,这里的查询直接变成了查询全部。

分页查询

即在select * from 表名 ???? limit 1,2 就代表了,查询结果中偏移量为1得到的连续前两个数据,如下图所示,这算是一种增强,在原有基础上增加一些功能。称为拦截并增强。

 配置mybatispuls拦截器

mybatispuls提供了一个拦截器叫做分页拦截器,配上了分页功能就有,不配置的话就没有分页功能。

该拦截器是个Bean,需要到配置类中配置这个Bean。

 新建一个MpConfig专门用来定义MyBatis的Bean

@Configuration
public class MpConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        //1.定义拦截器
        MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
        //2.添加具体的拦截器
        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor()); //
        return mybatisPlusInterceptor;
    }
}

要想让这个配置类中的Bean被加载有多种方法,这里选择在这个配置类上添加一个@Configuration注解,这样就会被扫描器发现了。

再次测试分页功能

这一次成功输出了5条正确的信息。最后查询结果也是只有两条。

开启mp的日志(输出到控制台)

开启之后再次测试有如下的输出 

可以看见分页查询的语句后面有接limit ?,这个问号就是输入的参数。

第一行还有个查询元素个数的语句。

把Page的两个参数改成(2,2)之后代表查询第二页的两条数据。此时的输出结果有如下:

limit后面接了两个问号,因为现在不是第1页了,需要多一个参数,limit语句只接一个数据时表示从第一条开始的?条数据。

小结 

这里的分页查询封装主要步骤就是,安装插件,添加配置类,使用IPage进行操作,最终查询结果都还在IPage当中。日志功能可开可不开。

 

猜你喜欢

转载自blog.csdn.net/m0_62327332/article/details/131012886
今日推荐