Mybatis Plus 使用学习四 常用注解

我们来看一下Mybatis Plus的常用注解,这些注解的作用很像Sprint MVC在中的Param(value=”xxx”),当入参和方法中接收参数不匹配时,可以用param的value来进行设置。

Mybatis Plus在使用时也会有表名、列表和实体名不一致的时候,这时就可以用过注解来进行设置。

1、@TableName 表的注解,指定表名

我们实际开发中,表名经常是以一定规则的前缀开始的,比如系统相关的表是SYS_***,是以sys开头,但是我们生成的实体,并不想带这这个前缀,一是影响理解,二是并不美观,所以这里就支持实体和表名不一致时,来进行差异设置。

//value的值用来指定数据库中实际的表名
@TableName(value = "tb_employee")//指定表名
public class Employee implements Serializable {
  ......
} 

2、@TableId 主键注解,指定表主键,这是主键专用注解

如果表的主键名称不是“ID”,那么就用这个注释来指定数据库表的主键实际名称,因为Mybatis Plus默认主键是”ID“,同时可以指定主键生成机制

//value指定的值与数据库主键列名一致,若实体类属性名与表主键列名一致可省略value
@TableId(value = "id",type = IdType.AUTO)//指定自增策略
private Long empId;

IdType枚举类中目前推荐的主键生成策略有:

AUTO(0),
NONE(1),
INPUT(2),
ASSIGN_ID(3),
ASSIGN_UUID(4)

3、@TableField 表中普通列的注解,也就是非主键字段使用,用于指定列名称

//value指定的值与数据库主键列名一致,若实体类属性名与表主键列名一致可省略value
@TableField (value = "name")//指定自增策略
private String empName;

如果某个字段不和数据库对应,只是加在实体上的额外属性,可以用exist=false表示当前属性不是表中的列。

4、@Version 乐观锁注解标记

标记在字段上,基于数据库实现乐观锁

5、@TableLogic 表字段逻辑处理注解(逻辑删除)

我们平时开发中,经常会用进行逻辑删除,所谓逻辑删除就是用户删除自己的一条业务数据,我们实际是执行的update操作,将该调数据的status从有效状态更新为无效状态,@TableLogic注解就是实现这个功能的。

例如在Employee类上的status属性上加上注解

class Employee {
	......
  
  @TableLogic(value = "1", delval = "0")
  Integer status;

	......

}

@TableLogic(value = “1”, delval = “0”)的含义就是,数据有效时,该列值为1,无效时,该列值会更新为0。

这是如果我们在ServiceImpl层调用:

BaseMapper的deleteById(id);

mapper的删除方法,实际执行的就是:

update employee set status = 0 where id = xxx

当然这些注解的功能不仅仅是这一个作用,还有非常多,非常丰富的作用,可以在实际开发中多尝试。