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

 更新时间:2024年04月17日 11:12:47   作者:大新软件技术部  
这篇文章主要介绍了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、其他相关注解

  • @Data:注在类上,提供类的get、set、equals、hashCode、toString等方法
  • @AllArgsConstructor:注在类上,提供类的全参构造
  • @NoArgsConstructor:注在类上,提供类的无参构造
  • @Setter:注在属性上,提供 set 方法
  • @Getter:注在属性上,提供 get 方法
  • @EqualsAndHashCode:注在类上,提供对应的 equals 和 hashCode 方法
  • @Log4j/@Slf4j:注在类上,提供对应的 Logger 对象,变量名为 log

二、注解@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属性上添加

总结

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

相关文章

  • SpringBoot结合Vue实现Python在线调试器

    SpringBoot结合Vue实现Python在线调试器

    这篇文章主要为大家详细介绍了SpringBoot如何结合Vue实现Python在线调试器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-01-01
  • Java如何在PPT中绘制图形

    Java如何在PPT中绘制图形

    这篇文章主要介绍了Java如何在PPT中绘制图形,Microsoft PowerPoint可支持在幻灯片中插入各种类型的图形并且可设置图形填充、线条颜色、图形大小、位置等。下面将通过Java编程来演示在PPT中绘制图形的方法,需要的朋友可以参考下
    2019-07-07
  • JAVA中StringBuffer与String的区别解析

    JAVA中StringBuffer与String的区别解析

    这篇文章主要介绍了JAVA中StringBuffer与String的区别解析,需要的朋友可以参考下
    2014-02-02
  • Java实战之自助进行多张图片合成拼接

    Java实战之自助进行多张图片合成拼接

    在当今数字化时代,图像处理技术在各个领域都发挥着至关重要的作用,本文为大家详细介绍了如何使用Java实现多张图片合成拼接,需要的可以了解下
    2025-02-02
  • SpringBoot没有读取到application.yml问题及解决

    SpringBoot没有读取到application.yml问题及解决

    这篇文章主要介绍了SpringBoot没有读取到application.yml问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java实现批量转换PPT为PDF

    Java实现批量转换PPT为PDF

    在日常工作中,PowerPoint 演示文稿因其强大的表现力而广泛应用,而为了方便共享,安全分发,或确保打印格式的一致性,我们常常需要将 PPT 文件转换为更通用的 PDF 格式,下面我们就来看看如何使用Java实现这一功能吧
    2025-06-06
  • springboot入门篇HelloWorld(图文教程)

    springboot入门篇HelloWorld(图文教程)

    springboot springboot是一个全新的框架,它设计的目的简化spring项目的初始环境的搭建和开发,下面这篇文章主要给大家介绍了关于springboot入门篇HelloWorld的相关资料,需要的朋友可以参考下
    2023-12-12
  • 浅谈Java中的private方法是否可以被代理

    浅谈Java中的private方法是否可以被代理

    这篇文章主要介绍了浅谈Java中的private方法是否可以被代理,在 Java 8之前,接口可以有常量变量和抽象方法,我们不能在接口中提供方法实现,如果我们要提供抽象方法和非抽象方法(方法与实现)的组合,那么我们就得使用抽象类,需要的朋友可以参考下
    2023-12-12
  • Mybatis的类型转换接口TypeHandler

    Mybatis的类型转换接口TypeHandler

    这篇文章主要介绍了Mybatis的类型转换接口TypeHandler,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • Java获取月份的三种方法总结

    Java获取月份的三种方法总结

    这篇文章主要给大家介绍了关于Java获取月份的三种方法,文中分别介绍了使用java.util.Date、java.util.Calendar和java.time包中的LocalDate类,推荐使用java.time包中的LocalDate,因为它提供了更为简洁和强大的功能,需要的朋友可以参考下
    2024-12-12

最新评论