1.介绍

官方是这样定义的:Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2.为什么要用MyBatis-Plus?

优点:

    效率提高了,因为基本的CRUD写好了
    支持Lambda形式调用,不用担心字段写错而引起的异常
    支持主键自动生成
    内置分页插件
    基于mybatis做增强而已
    SQL语句自由控制,较为灵活
    提供动态SQL语句,可以根据需求灵活控制SQL与业务代码分离,易于阅读
    提供功能丰富的条件构造器快速进行无sql开发
    内置代码生成器,分页插件, 性能分析插件等

3 .常用方法

mybatisplus BaseMapper 不生效 mybatis-plus mapper_内连接

  Mapper继承了BaseMapper类然后由BaseMapper类提供了一系列CRUD方法

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_02

常用函数

mybatisplus BaseMapper 不生效 mybatis-plus mapper_1024程序员节_03

 如果BaseMapper不能满足实际业务需求的时候也可以直接创建方法创建对应的Mapper.xml文件自己写sql语句来实现

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mysql_04

在对应的Mapper.xml文件中写sql语句首先用到的就是联表查询了。那么我就介绍一下内连接,左连接,右连接作用及区别。

例如表1

mybatisplus BaseMapper 不生效 mybatis-plus mapper_内连接_05

表2

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mysql_06

 内连接INNER JOIN表1 有4条结果,但是与表2有关联的结果只用3条,那么内连接就会将两个表中有关联的数据都显示出来

mybatisplus BaseMapper 不生效 mybatis-plus mapper_内连接_07

左连接LEFT JOIN 就会将左边表的全部内容展示出来,右边表中只将与左表有关联的数据展示

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_08

右连接REGHT JOIN 与左连接LEFT JOIN相反

表中数据显示Null的话如果返回给客户会不太好看

例 成绩表

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mysql_09

 成绩表有缺考的应该显示0分的,但是显示的Null分不符合要求,这时候可以这样判断一下。

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mysql_10

 但是思考一下如何把每位同学成绩最高科目展示出来

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_11

4.使用mybatis-plus

创建模型类pojo

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mysql_12

写个测试类试一下

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_13

 常用注解及方法

实体类中创建时间以及修改时间可以加入

@TableField(fill = FieldFill.INSERT_UPDATE)
@TableField(fill = FieldFill.INSERT)

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_14

编写处理器来处理这个注释就会在写操作时候自动生成当前时间

mybatisplus BaseMapper 不生效 mybatis-plus mapper_java_15

 自定义sql

 可以在Mapper文件中使用@Select注解

mybatisplus BaseMapper 不生效 mybatis-plus mapper_内连接_16

 5.配置日志

mybatisplus BaseMapper 不生效 mybatis-plus mapper_内连接_17

 这样就可以在日志中看到我们执行的sql了

mybatisplus BaseMapper 不生效 mybatis-plus mapper_mybatis_18