java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > j2ee mybatis注解@Data,@TableName,@TableField

j2ee mybatis注解@Data,@TableName,@TableField使用方式

作者:大新软件技术部

这篇文章主要介绍了j2ee mybatis注解@Data,@TableName,@TableField使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、@Data

@Data注解的主要作用是提高代码的简洁,使用这个注解可以省去实体类中大量的get()、 set()、 toString()等方法。

1、引入依赖

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>

可以在IDEA编译器中添加lombok插件,File -> Setting -> Plugins -> 搜索lombok

2、添加注解

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
    private String name;
    private String address;
    private Integer age;
    private String hobbit;
    private String phone;
}

自动生成的相关方法get()、 set()、 toString()等方法

3、其他相关注解

二、注解@TableName、@TableField

@TableName(value = …)

当数据库名与实体类名不一致或不符合驼峰命名时,需要在此注解指定表名(不加这个注解默认将实体类的小写形式在db中寻找

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

@TableName(value = "t_dish")
public class Dish implements Serializable {
 
    private static final long serialVersionUID = 1L;
 
    @TableId(value = "dish_id", type = IdType.AUTO)
    private Long id;
    @TableField("name")
    //菜品名称
    private String name;
}

@TableId(type = …)

指定实体类的属性为对应的主键,主要有以下几种:

// 数据库ID自增
IdType.AUTO

// 该类型为未设置主键类型(默认)
IdType.NONE 
/**
 * 用户输入ID
 * <p>该类型可以通过自己注册自动填充插件进行填充</p>
 */
IdType.INPUT


/* 以下3种类型、只有当插入对象ID 为空,才自动填充。 */
//1.全局唯一ID (idWorker)
IdType.ID_WORKER
 
//2.全局唯一ID (UUID)
IdType.UUID
 
//3.字符串全局唯一ID (idWorker 的字符串表示)
IdType.ID_WORKER_STR

@TableField注解

1、 主要用来解决实体类的字段名与数据库中的字段名不匹配的问题(数据库user_addr,字段useraddr未驼峰)

2、 实体类中的属性字段在表中不存在的问题

// 用来解决数据库中的字段和实体类的字段不匹配问题
@TableField(value = "age")
 
// 用来解决实体类中有的属性但是数据表中没有的字段
@TableField(exist = false)  // 默认为true 

三、MybatisPlus中@TableField注解的使用 

字段填充策略 FieldFill 

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreat;
 
    /**
     * 修改人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long modifierId;

对添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)的字段在进行插入(insert)和更新(update)时进行自动填充。

(解释:后面会写配置自动填充的配置类,该配置类的作用用于配置自动填充的值)。

@TableField(exist=false)
 private String remark;

@TableField(exist=false)的作用

比如在实体类中有一个属性为remark,但是在数据库中没有这个字段,但是在执行插入操作时给实体类的remark属性赋值了,那么可以通过在实体类的remark属性上添加

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文