【【尚硅谷】2022版MyBatisPlus教程(一套玩转mybatis-plus)】
MyBatis Plus自带分页插件,只要简单的配置即可实现分页功能
package com.dingjiaxiong.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;
/**
* ClassName: MybatisPlusConfig
* date: 2022/10/14 10:56
*
* @author DingJiaxiong
*/
@Configuration
@MapperScan("com.dingjiaxiong.mybatisplus.mapper") //可以将启动类中的注解写到这儿
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}



package com.dingjiaxiong.mybatisplus.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dingjiaxiong.mybatisplus.domain.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* ClassName: UserMapper
* date: 2022/10/12 19:39
*
* @author DingJiaxiong
*/
@Repository
public interface UserMapper extends BaseMapper<User> {
/*
* 根据年龄查询用户列表,分页显示
* */
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.dingjiaxiong.mybatisplus.mapper.UserMapper">
<sql id="BaseColumns">uid,username,age,emailsql>
<select id="selectPageVo" resultType="com.dingjiaxiong.mybatisplus.domain.User">
select <include refid="BaseColumns">include> from t_user where age > #{age}
select>
mapper>

@Test
public void testSelectPageVo(){
//设置分页参数
Page<User> page = new Page<>(1,5);
userMapper.selectPageVo(page,20);
//获取分页数据
List<User> list = page.getRecords();
list.forEach(System.out::println);
System.out.println("当前页:" + page.getCurrent());
System.out.println("每页显示的条数:" + page.getSize());
System.out.println("总记录数:" + page.getTotal());
System.out.println("总页数:" + page.getPages());
System.out.println("是否有上一页:" + page.hasPrevious());
System.out.println("是否有下一页:" + page.hasNext());
}
测试结果

这是因为字段名和属性不一致导致的,
最简单的一种办法,就是在映射文件的xml SQL语句中使用别名
