package com.sgz.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;
/**
* 日期:2022/8/14 - 17:10
* 需求:配置分页拦截器
*/
@Configuration
@MapperScan("com.sgz.mapper") // 扫描mapper接口所在的包
public class MyBatisPlusConfig {
// 配置分页拦截器
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
package com.sgz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sgz.mapper.UserMapper;
import com.sgz.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 test() {
// SELECT uid AS id,user_name AS name,age,email,is_deleted FROM t_user WHERE is_deleted=0 LIMIT ?
// 第一页每页显示三条
Page<User> page = new Page<>(1, 3);
// IPage page = new Page<>(1, 3);
// null:要查询的字段,null全部查询
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()); // 是否有上一页
}
}
package com.sgz.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
@MapperScan("com.sgz.mapper") // 扫描mapper接口所在的包
public class MyBatisPlusConfig {
// 配置分页拦截器
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
package com.sgz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sgz.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Map;
@Repository
public interface UserMapper extends BaseMapper<User> {
/**
* 通过年龄查询用户信息并分页
* @param page MyBaits-Plus所提供的分页对象,必须位于第一个参数的位置
* @param age
* @return
*/
Page<User> selectPageVo(@Param("page") Page<User> page, @Param("age") Integer age);
}
DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sgz.mapper.UserMapper">
<select id="selectPageVo" resultType="User">
select uid, user_name, age, email
from t_user
where age > #{age}
select>
mapper>
package com.sgz;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sgz.mapper.UserMapper;
import com.sgz.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 test02() {
// select uid, user_name, age, email from t_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()); // 是否有上一页
}
}