[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分页插件的配置和使用的主要内容,如果未能解决你的问题,请参考以下文章