mybatisplus官方文档学习笔记二(注解)

@TableName(表名注解):

属性 类型 必须指定 默认值 描述
1.value |String |否 |"" |表名
2.schema |String |否 |""| schema
3.keepGlobalPrefix| boolean |否 |false |是否保持使用全局的 tablePrefix 的值(如果设置了全局 tablePrefix 且自行设置了 value 的值)
4.resultMap |String |否 |""| xml 中 resultMap 的 id
5.autoResultMap |boolean |否 |false |是否自动构建 resultMap 并使用(如果设置 resultMap 则不会进行 resultMap 的自动构建并注入)

关于autoResultMap的说明:

mp会自动构建一个ResultMap并注入到mybatis里(一般用不上).下面讲两句: 因为mp底层是mybatis,所以一些mybatis的常识你要知道,mp只是帮你注入了常用crud到mybatis里 注入之前可以说是动态的(根据你entity的字段以及注解变化而变化),但是注入之后是静态的(等于你写在xml的东西) 而对于直接指定typeHandler,mybatis只支持你写在2个地方:

定义在resultMap里,只作用于select查询的返回结果封装
定义在insert和updatesql的#{property}里的property后面(例:#{property,typehandler=xxx.xxx.xxx}),只作用于设置值 而除了这两种直接指定typeHandler,mybatis有一个全局的扫描你自己的typeHandler包的配置,这是根据你的property的类型去找typeHandler并使用.

@TableId(主键注解):

属性 类型 必须指定 默认值 描述
1.value |String| 否 |""| 主键字段名
2.type |Enum| 否 |IdType.NONE |主键类型

上面的IdType中,我们有以下的值可以提供选择:
AUTO: 数据库ID自增
NONE: 无状态,该类型为未设置主键类型(注解里等于跟随全局,全局里约等于 INPUT)
INPUT: insert前自行set主键值
ASSIGN_ID: 分配ID(主键类型为Number(Long和Integer)或String)(since 3.3.0),使用接口IdentifierGenerator的方法nextId(默认实现类为DefaultIdentifierGenerator雪花算法)
ASSIGN_UUID: 分配UUID,主键类型为String(since 3.3.0),使用接口IdentifierGenerator的方法nextUUID(默认default方法)

@TableField(字段注解-非主键)

属性 类型 必须指定 默认值 描述
value |String| 否| “” |数据库字段名
el |String |否 |"" |映射为原生 #{ … } 逻辑,相当于写在 xml 里的 #{ … } 部分
exist |boolean |否 true 是否为数据库表字段
condition |String |否 |""| 字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s},参考
update |String |否 |""| 字段 update set 部分注入, 例如:update="%s+1":表示更新时会set version=version+1(该属性优先级高于 el 属性)
insertStrategy| Enum |N |DEFAULT |举例:NOT_NULL: insert into table_a(column) values (#{columnProperty})
updateStrategy |Enum| N |DEFAULT |举例:IGNORED: update table_a set column=#{columnProperty}
whereStrategy| Enum |N |DEFAULT |举例:NOT_EMPTY: where column=#{columnProperty}
fill |Enum |否| FieldFill.DEFAULT |字段自动填充策略
select |boolean| 否 |true |是否进行 select 查询
keepGlobalFormat |boolean |否 |false |是否保持使用全局的 format 进行处理
jdbcType |JdbcType |否 |JdbcType.UNDEFINED |JDBC类型 (该默认值不代表会按照该值生效)
typeHandler |Class<? extends TypeHandler>| 否 |UnknownTypeHandler.class |类型处理器 (该默认值不代表会按照该值生效)
numericScale |String |否 |"" |指定小数点后保留的位数

关于jdbcTypetypeHandler以及numericScale的说明:

numericScale只生效于 update 的sql. jdbcType和typeHandler如果不配合@TableName#autoResultMap = true一起使用,也只生效于 update 的sql. 对于typeHandler如果你的字段类型和set进去的类型为equals关系,则只需要让你的typeHandler让Mybatis加载到即可,不需要使用注解

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

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

@Version(乐观锁注解、标记 @Verison 在字段上)

@EnumValue(通枚举类注解(注解在枚举字段上))

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

属性 类型 必须指定 默认值 描述
value |String |否| “” |逻辑未删除值
delval| String |否| “” |逻辑删除值

@SqlParser(租户注解,支持method上以及mapper接口上)

属性 类型 必须指定 默认值 描述
filter |boolean| 否| false |true: 表示过滤SQL解析,即不会进入ISqlParser解析链,否则会进解析链并追加例如tenant_id等条件

*@KeySequence(序列主键策略 oracle)

属性:value、resultMap
属性 类型 必须指定 默认值 描述
value String 否 “” 序列名
clazz Class 否 Long.class id的类型, 可以指定String.class,这样返回的Sequence值是字符串"1"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值