我们来看一下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
当然这些注解的功能不仅仅是这一个作用,还有非常多,非常丰富的作用,可以在实际开发中多尝试。