1.Mybatis-plus与mybatis关系

Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做增强,它支持Mybatis所有特性,正如官方文档所说:我们的愿景是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍

2.Mybatis-plus 主要注解

  • @TableName 表名注解 一般在实际开发中,会在实体类上面加,用来对应一张数据表

  • @TableId 主键注解 一般用来表明一张表中的主键,关于主键类型取值,有如下几种:

AUTO:数据库ID自增

NONE: 无状态,该类型为未设置主键类型(可以看做INPUT)

INPUT:insert前自行set主键值

ASSIGN_ID: 分配ID(主键类型为Number(Long和Integer)或String),使用接口IdentifierGenerator的方法nextId;

ASSIGN_UUID: 分配UUID,主键类型为String,使用接口IdentifierGenerator的方法nextUUID

目前官方文档已经去掉了后面三个,增加ASSIGN_UUID 

  • @TableField 字段注解(非主键) 自己在实际开发中常用来描述数据表中没有的字段,但是在使用这个实体有需要带上的字段。

例如,设计一张表是学生课程表,表字段包含有:id,courseId,classId,studentId,remark。但是在前端获取这张表数据时,想要显示的是课程名(courseName),班级名字(className),学生名(studentName)但数据库表中有不存在这几个字段,我们在创建这个实体时,则可以加上这个注解:@TableField(exist = false)。对于这个字段常用的就是这个属性,还有其他属性 在后面随着学习会进一步去学习加强

  • @Verison ,@EnumValue ,@TableLogic,@KeySequence等注解 随着学习的深入 会逐步去了解

3.Mybatis-plus 依赖和配置

1 pom.xml文件中引入依赖

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.1.1</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus</artifactId>
    <version>3.1.1</version>
</dependency>

2 application.yml文件配置数据库

datasource:
  name: druidDataSource
  type: com.alibaba.druid.pool.DruidDataSource
  druid:
    url: jdbc:mysql://localhost:3306/resume?useUnicode=true&characterEncoding=utf-8&useSSL=false&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
    username: root
    password: "root"
    driverClassName: com.mysql.cj.jdbc.Driver

3 Aoolication中加扫描注解MapperScan 如:

@EnableEurekaClient
@MapperScan("com.flscode.resume.mapper")
@ComponentScan({"com.flscode.publicapi.Response","com.flscode.resume"})
@SpringBootApplication
public class WxresumeApplication {
    public static void main(String[] args) {
        SpringApplication.run(WxresumeApplication.class,args);
    }
}

4.总结

今天只写了mybatis-plus的一些主要注解和它的配置,但是在声明一个实体时,这些注解可以给我们带来很大的方便,例如@TableField,我在在实际开发中会经常使用到,对mybatis-plus的配置也可以看出mybatis-plus很容易上手,他只对mybatis做增强,只需要引入相应的依赖的即可。它其中一个特性:支持主键自动生成,通过一个注解来支持多种注解策略,例如上面所说的主键自增,手动set,自动分配等,完美解决主键问题。随着后面的学习,它的其他特性:强大的 CRUD 操作支持 Lambda 形式调用内置分页插件等都会体现出来