一. 添加分页插件
创建config包,用来存放配置类;在config包下添加MyBatisPlus的配置类;并在类中添加分页插件
package com.xdu.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.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//添加分页插件
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
二. 测试
1. 使用mybatis-plus自带的分页功能
package com.xdu.mybatisplus;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdu.mybatisplus.mapper.UserMapper;
import com.xdu.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 MyBatisPlusTest {
@Autowired
private UserMapper userMapper;
@Test
public void testPage(){
Page<User> page = new Page<>(2, 3); //第2页,每页显示3条
userMapper.selectPage(page, null); //第二个参数是queryWrapper
System.out.println(page.getCurrent()); //获取当前页的页码
System.out.println(page.getSize()); //获取当前页的总记录数
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()); //在当前页是否还有前一页
}
}
2. 自定义分页功能
package com.xdu.mybatisplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdu.mybatisplus.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper extends BaseMapper<User> {
//根据年龄查询用户信息并分页
Page<User> selectPageUser(@Param("page") Page<User> page, @Param("age") Integer age);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdu.mybatisplus.mapper.UserMapper"> <!--为mapper接口的全类名-->
<select id="selectPageUser" resultType="User">
select * from user where age>#{age}
</select>
</mapper>
package com.xdu.mybatisplus;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xdu.mybatisplus.mapper.UserMapper;
import com.xdu.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 MyBatisPlusTest {
@Autowired
private UserMapper userMapper;
@Test
public void testPage(){
Page<User> page = new Page<>(2, 3); //第2页,每页显示3条
userMapper.selectPageUser(page, 20); //年龄大于20的用户信息分页显示
System.out.println(page.getCurrent()); //获取当前页的页码
System.out.println(page.getSize()); //获取当前页的总记录数
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()); //在当前页是否还有前一页
}
}
本文介绍如何在 MyBatis Plus 中实现分页功能,包括添加分页插件及自定义分页查询的方法。
3552

被折叠的 条评论
为什么被折叠?



