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属性上添加
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
spring boot 3.3.0和mybatis plus 3.5.6版本冲突
这篇文章主要介绍了spring boot 3.3.0和mybatis plus 3.5.6版本冲突的问题解决,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-07-07SpringBoot+Elasticsearch实现数据搜索的方法详解
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。本文将利用SpringBoot整合Elasticsearch实现海量级数据搜索,需要的可以参考一下2022-05-05
最新评论