MyBatisPlus分页插件的配置和使用

写个文章仅仅为了记笔记——————

目录

一.实现一个简单的分页测试功能

(一)添加配置类

(二)接下来创建一个测试类MyBatisPlusTest

(三)一些page对象封装的数据测试

二. 自定义分页功能

(一)创建接口

(二)添加配置文件

(三)创建测试方法


MyBatisPlus自带分页插件,只需简单的配置就可以实现分页功能

一.实现一个简单的分页测试功能

(一)添加配置类

最好在项目src内新创建一个config配置类文件夹,创建配置类MyBatisPlusConfig

1.添加配置类注解@Configuration。

2.需要扫描mapper接口所在的包(主类中的注解移过来)例:

@MapperScan("nuc.guigu.zwj.mybatisplus.mapper")

3.配置分页插件(需要注解@Bean)

配置类代码:

@Configuration
@MapperScan("nuc.guigu.zwj.mybatisplus.mapper")
public class MyBatisPlusConfig {
    //配置分页插件
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
   //数据库类型是MySql,因此参数填写DbType.MYSQL
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }
}

(二)接下来创建一个测试类MyBatisPlusTest

1.测试类记得添加注解@SpringBootTest

2.对使用的mapper组件进行自动装配,添加注解@Autowired

@Autowired
UserMapper userMapper;

3.测试方法里

userMapper方法里有一个selectPage(),这个方法参数有两个,第一个是Page类型的(分页对象),第二个是Wapper类型的,因此我们创建这两个对象。

Page类的泛型为我们操作的实体类对象,参数为当前页的页码(current),个每页显示的条数(size),语句为

Page<User> page = new Page<>(2,3);

第二个参数Wapper类型为条件构造器的条件,因为这里查询的是所有数据(即没有条件),所以Wapper类型的数据填null。

输出page对象,执行可以看到输出的是page的内存地址

那么之后就可以访问page对象的各个数据。

4.测试类代码

@SpringBootTest
public class MyBatisPlusPluginsTest {

    @Autowired
    UserMapper userMapper;

    @Test
    public void test01(){
        Page<User> page = new Page<>(2,3);
        userMapper.selectPage(page,null);
        System.out.println(page);
    }
}

(三)一些page对象封装的数据测试

System.out.println(page.getRecords());//获取分页记录
System.out.println(page.getPages());//总页数
System.out.println(page.getTotal());//总记录数
System.out.println(page.hasNext());//是否有下一页
System.out.println(page.hasPrevious());//是否有上一页

二. 自定义分页功能

加入需要查询以用户年龄为条件输出用户信息数据并分页时

自定义的page方法返回值必须是page

(一)创建接口

在接口类Mapper类里创建方法SelectPageByAge(),类型仍然为Page,泛型为实体类User,参数第一个为Page<User> page,第二个为年龄Integer age。这里有两个参数,我们设置参数的访问规则可以使用@Param。

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

(二)添加配置文件

配置类型别名所对应的包,在yml中添加配置

mybatis-plus:
  #配置类型别名所对应的包
  type-aliases-package: nuc.guigu.zwj.mybatisplus.pojo

这个时候就可以使用类型别名了,这个包下的所有的类型都可以使用所对应的默认的别名,即resultType可以直接等于“User”,而不用写user的相对路径。

在xml文件中添加SelectPageByAge方法的映射

<select id="selectPageByAge" resultType="User">
        select uid,user_name,age,email
        from t_user where age > = #{age};
    </select>

(三)创建测试方法

前面的都一样,改变的是自定义page方法的第二个参数,将其改为了Integer类型的年龄age

@Test
    public void testPageByAge(){
        Page<User> page = new Page<>(1,3);
        userMapper.selectPageByAge(page,20);
        System.out.println(page.getRecords());//获取分页记录
        System.out.println(page.getPages());//总页数
        System.out.println(page.getTotal());//总记录数
        System.out.println(page.hasNext());//是否有下一页
        System.out.println(page.hasPrevious());//是否有上一页
    }

测试完成

  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值