MybatisPlus基本使用

引入依赖

<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;
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小码boy!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值