@TableField

注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码

本文将介绍 @TableField 字段注解,该注解用于标识非主键的字段。将数据库列与 JavaBean 中的属性进行映射,例如:

@TableName(value = "user")
public class AnnotationUser4Bean {
   @TableId(value = "user_id", type = IdType.AUTO)
   private String userId;
   
   @TableField("name")
   private String name;
   
   @TableField("sex")
   private String sex;
   
   @TableField("age")
   private Integer age;
}

上面的实例中,将 user 数据表中的 name、sex 和 age 列字段与 AnnotationUser4Bean 实体中的 name、sex 和 age 属性进行映射。

下面将逐一介绍 @TableField 注解每个属性的含义和用法:

value

指定映射的数据库字段名,例如:

@TableField("sex")
private String sex;

@TableField(value="sex")
private String sex;

el

映射为原生 #{ ... } 逻辑,相当于写在 xml 里的 #{ ... } 部分。

exist

是否为数据库表字段,默认为 true。

condition

字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}

update

字段 update set 部分注入,例如:update="%s+1":表示更新时会 set version=version+1(该属性优先级高于 el 属性)

insertStrategy

举例:NOT_NULL: 

insert into table_a(
<if test="columnProperty != null">column</if>
) values (
<if test="columnProperty != null">#{columnProperty}</if>
)

updateStrategy

举例:IGNORED: 

update table_a set column=#{columnProperty}

whereStrategy

举例:NOT_EMPTY: 

where 
<if test="columnProperty != null and columnProperty!=''">
    column=#{columnProperty}
</if>

fill

字段自动填充策略,默认为 FieldFill.DEFAULT。

select

是否进行 select 查询,默认为 true。

keepGlobalFormat

是否保持使用全局的 format 进行处理,默认为 false。

jdbcType

JDBC类型 ,该默认值不代表会按照该值生效,默认为 JdbcType.UNDEFINED。

typeHandler

Class<? extends TypeHandler> 类型处理器,该默认值不代表会按照该值生效,默认为 UnknownTypeHandler.class。

numericScale

指定小数点后保留的位数。


说说我的看法
全部评论(

说的不清楚啊

回复:

谢谢支持,后续会改进的

关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号