MyBatis-Plus简单使用——注解详解(3)

这篇博客详细解析了MyBatis-Plus中的一系列注解,包括@TableName用于指定表名,@TableId定义主键,@TableField处理字段,@Version实现乐观锁,@EnumValue注解枚举,@TableLogic进行逻辑删除,@SqlParser处理租户信息,以及@KeySequence配置序列主键策略。通过这些注解,可以简化数据库操作并增强代码的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@TableName

  • 描述:表名注解
属性类型必须指定默认值描述
valueString""表名
resultMapString""xml 中 resultMap 的 id
schemaString""schema(@since 3.1.1)
keepGlobalPrefixbooleanfalse是否保持使用全局的 tablePrefix 的值(如果设置了全局 tablePrefix 且自行设置了 value 的值)(@since 3.1.1)

#@TableId

  • 描述:主键注解
属性类型必须指定默认值描述
valueString""主键字段名
typeEnumIdType.NONE主键类型

#IdType

描述
AUTO数据库自增
INPUT自行输入
ID_WORKER分布式全局唯一ID 长整型类型
UUID32位UUID字符串
NONE无状态
ID_WORKER_STR分布式全局唯一ID 字符串类型

#@TableField

  • 描述:字段注解(非主键)
属性类型必须指定默认值描述
valueString""字段名
elString""映射为原生 #{ ... } 逻辑,相当于写在 xml 里的 #{ ... } 部分
existbooleantrue是否为数据库表字段
conditionString""字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s},参考
updateString""字段 update set 部分注入(该属性优先级高于 el 属性)
strategyEnumFieldStrategy.DEFAULT字段验证策略
fillEnumFieldFill.DEFAULT字段自动填充策略
selectbooleantrue是否进行 select 查询
keepGlobalFormatbooleanfalse是否保持使用全局的 format 进行处理(@since 3.1.1)

#FieldStrategy

描述
IGNORED忽略判断
NOT_NULL非NULL判断
NOT_EMPTY非空判断(只对字符串类型字段,其他类型字段依然为非NULL判断)
DEFAULT追随全局配置

#FieldFill

描述
DEFAULT默认不处理
INSERT插入时填充字段
UPDATE更新时填充字段
INSERT_UPDATE插入和更新时填充字段

#@Version

  • 描述:乐观锁注解、标记 @Verison 在字段上

#@EnumValue

  • 描述:通枚举类注解(注解在枚举字段上)

#@TableLogic

  • 描述:表字段逻辑处理注解(逻辑删除)
属性类型必须指定默认值描述
valueString""逻辑未删除值
delvalString""逻辑删除值

#@SqlParser

  • 描述:租户注解 目前只支持注解在 mapper 的方法上(3.1.1开始支持注解在mapper上)
属性类型必须指定默认值描述
filterbooleanfalse过滤 SQL 解析

#@KeySequence

  • 描述:序列主键策略 oracle
  • 属性:value、resultMap
属性类型必须指定默认值描述
valueString""序列名
clazzClassLong.classid的类型

 

案例:

@TableName(value = "tab_user")
public class Users {

    @TableId(value = "id",type = IdType.AUTO)
    private Long id;

    @TableField(value = "user_name")
    private String name;

    @TableField(value = "user_age")
    private Integer age;

    @TableField(value = "user_email")
    private String email;
/**
 * @TableField(exist = false)//非数据库表字段,语句不做处理
 * 
 * Users users=new Users("小明",10,"xiaoming@qq.com",new Date());
 *  int a=usersMapper.insert(users);
 *  
 * 打印sql:INSERT INTO tab_user ( user_name, user_age, user_email ) VALUES ( ?, ?, ? )
 */
    @TableField(exist = false)//非数据库表字段,语句不做处理
    private Date creatDate;

........

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值