[MyBatisPlus]Plus分页插件的配置和使用

Posted 唐火

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MyBatisPlus]Plus分页插件的配置和使用相关的知识,希望对你有一定的参考价值。

Plus分页插件的配置和使用

配置类

package com.xxxx.mybatisplus.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
// 扫描mapper接口所在的包
@MapperScan("com.xxxx.mybatisplus.mapper")
public class MyBatisPlusConfig 

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor()
    
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.mysql));
        return interceptor;

    



测试

package com.xxxx.mybatisplus;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xxxx.mybatisplus.mapper.UserMapper;
import com.xxxx.mybatisplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class MyBatisPlusPluginsTest 

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testPage()
    
        // 第1页,每一页显示3条数据
        Page<User> page = new Page<>(1,3);
       userMapper.selectPage(page, null);
        System.out.println(page);
    



分页相关数据获取

package com.xxxx.mybatisplus;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xxxx.mybatisplus.mapper.UserMapper;
import com.xxxx.mybatisplus.pojo.User;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class MyBatisPlusPluginsTest 

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testPage()
    
        // 第1页,每一页显示3条数据
        Page<User> page = new Page<>(1,3);
       userMapper.selectPage(page, null);
        System.out.println(page.getRecords());// 获得当前页数据
        System.out.println(page.getCurrent());// 获得页码
        System.out.println(page.getSize());// 获得每页显示条数
        System.out.println(page.getPages());// 获得总页数
        System.out.println(page.getTotal());// 获得总记录数
        System.out.println(page.hasNext());// 是否有下一页
        System.out.println(page.hasPrevious());// 是否有上一页

    



自定义分页功能

UserMapper

package com.xxxx.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xxxx.mybatisplus.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Map;

// 将类或者接口标记为持久层组件 这样就不会看见test类中的红线警告了
@Repository
public interface UserMapper extends BaseMapper<User> 


    /**
     * 根据id查询用户信息为map集合
     * @param id
     * @return
     */
    Map<String,Object> selectMapById(Long id);




    /**
     * 如果想通过分页插件作用于我们自己定义的函数,第一个参数必须是Page对象
     * 通过年龄查询用户信息并分页
     * @param page MyBatis-Plus所提供的分页对象,必须位于第一个参数的位置
     * @param age
     * @return
     */
    Page<User> selectPageVo(@Param("page") Page<User> page,@Param("age") Integer age);







yaml

UserMapper.xml

<!--    Page<User> selectPageVo(@Param("page") Page<User> page,@Param("age") Integer age);-->
<!--    默认别名就是类名不区分大小写-->
<select id="selectPageVo" resultType="User">
    select uid,user_name,age,email from user where age > #age
</select>

测试

 @Test
    public void testPageVo()
    
        // 第1页,每一页显示3条数据
        // select uid,user_name,age,email from user where age > ? LIMIT ?
        Page<User> page = new Page<>(1,3);
        userMapper.selectPageVo(page, 20);
        System.out.println(page.getRecords());// 获得当前页数据
        System.out.println(page.getCurrent());// 获得页码
        System.out.println(page.getSize());// 获得每页显示条数
        System.out.println(page.getPages());// 获得总页数
        System.out.println(page.getTotal());// 获得总记录数
        System.out.println(page.hasNext());// 是否有下一页
        System.out.println(page.hasPrevious());// 是否有上一页
    

以上是关于[MyBatisPlus]Plus分页插件的配置和使用的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis Plus分页插件常用配置

MybatisPlus分页条件查询

springboot+mybatisplus+sqlserver(2008SR)整合分页问题

Mybatis-plus之分页泛型转换

mybatis-plus 分页插件

Mybatis-Plus分页插件