注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “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 注解每个属性的含义和用法:
指定映射的数据库字段名,例如:
@TableField("sex") private String sex; @TableField(value="sex") private String sex;
映射为原生 #{ ... } 逻辑,相当于写在 xml 里的 #{ ... } 部分。
是否为数据库表字段,默认为 true。
字段 where 实体查询比较条件,有值设置则按设置的值为准,没有则为默认全局的 %s=#{%s}
字段 update set 部分注入,例如:update="%s+1":表示更新时会 set version=version+1(该属性优先级高于 el 属性)
举例:NOT_NULL:
insert into table_a( <if test="columnProperty != null">column</if> ) values ( <if test="columnProperty != null">#{columnProperty}</if> )
举例:IGNORED:
update table_a set column=#{columnProperty}
举例:NOT_EMPTY:
where <if test="columnProperty != null and columnProperty!=''"> column=#{columnProperty} </if>
字段自动填充策略,默认为 FieldFill.DEFAULT。
是否进行 select 查询,默认为 true。
是否保持使用全局的 format 进行处理,默认为 false。
JDBC类型 ,该默认值不代表会按照该值生效,默认为 JdbcType.UNDEFINED。
Class<? extends TypeHandler> 类型处理器,该默认值不代表会按照该值生效,默认为 UnknownTypeHandler.class。
指定小数点后保留的位数。
说的不清楚啊
谢谢支持,后续会改进的