引入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
Mapper文件
public interface EduTeacherMapper extends BaseMapper<EduTeacher> {
}
Mapper.xml文件
<?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.lq.eduservice.mapper.EduTeacherMapper">
</mapper>
Service接口文件
public interface EduTeacherService extends IService<EduTeacher> {
}
Service实现文件
@Service
public class EduTeacherServiceImpl extends ServiceImpl<EduTeacherMapper, EduTeacher> implements EduTeacherService {
//继承的ServiceImpl类已经预先写好了常用的CRUD方法,所以无需再自己定义方法。
//如果提供的方法不能满足自己的需求,也可按照以前写Mybatis时的流程自己定义方法。
}
实体类文件
@Data
@ApiModel(value="EduTeacher对象", description="讲师")
public class EduTeacher implements Serializable {
@ApiModelProperty(value = "讲师ID")
@TableId(value = "id", type = IdType.ASSIGN_ID)
private String id;
@ApiModelProperty(value = "讲师姓名")
private String name;
@ApiModelProperty(value = "讲师简介")
private String intro;
@ApiModelProperty(value = "讲师资历,一句话说明讲师")
private String career;
@ApiModelProperty(value = "头衔 1高级讲师 2首席讲师")
private Integer level;
@ApiModelProperty(value = "讲师头像")
private String avatar;
@ApiModelProperty(value = "排序")
private Integer sort;
@ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
private Boolean isDeleted;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
}
Controller文件
@Resource
private EduTeacherService eduTeacherService;
@ApiOperation(value = "分页查询讲师")
//current当前页,limit每页多少数据
@GetMapping("pageListTeacher/{current}/{limit}")
public R pageListTeacher(@ApiParam(name = "current", value = "当前页", required = true)
@PathVariable long current,
@ApiParam(name = "limit", value = "每页数据数量", required = true)
@PathVariable long limit)
{
Page<EduTeacher> pageTeacher=new Page<>(current,limit);
eduTeacherService.page(pageTeacher,null);
long total=pageTeacher.getTotal();
List<EduTeacher> records = pageTeacher.getRecords();
Map<String,Object> data=new HashMap<>();//当前页记录数
data.put("total",total);
data.put("items",records);
return R.ok().data(data);//返回给前端
/*
System.out.println(pageTeacher.getCurrent());//当前页
System.out.println(pageTeacher.getSize());//每页记录数
System.out.println(pageTeacher.getTotal());//总记录数
System.out.println(pageTeacher.getRecords());//每页数据list集合
System.out.println(pageTeacher.getPages());//总页数
System.out.println(pageTeacher.hasNext());//是否有下一页
System.out.println(pageTeacher.hasPrevious());//是否有上一页*/
}
低版本分页配置类代码
@Configuration
@MapperScan("com.lq.eduservice.mapper")//注意要写Mapper扫描路径
public class EduConfig
{
//分页插件
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
}
高版本分页配置类代码(写低版本的代码也可以,只不过是已经过时了)
@Configuration
@MapperScan("com.lq.eduservice.mapper")//注意要写Mapper扫描路径
public class MybatisConfig
{
//分页插件
@Bean
public MybatisPlusInterceptor paginationInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
//这是分页拦截器
PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
paginationInnerInterceptor.setOverflow(true);
paginationInnerInterceptor.setMaxLimit(500L);
mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
return mybatisPlusInterceptor;
}
}