j2ee mybatis注解@Data,@TableName,@TableField使用方式
一、@Data
@Data注解的主要作用是提高代碼的簡(jiǎn)潔,使用這個(gè)注解可以省去實(shí)體類中大量的get()、 set()、 toString()等方法。
1、引入依賴
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.4</version> <scope>provided</scope> </dependency>
可以在IDEA編譯器中添加lombok插件,F(xiàn)ile -> 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; }
自動(dòng)生成的相關(guān)方法get()、 set()、 toString()等方法
3、其他相關(guān)注解
@Data
:注在類上,提供類的get、set、equals、hashCode、toString等方法@AllArgsConstructor
:注在類上,提供類的全參構(gòu)造@NoArgsConstructor
:注在類上,提供類的無(wú)參構(gòu)造@Setter
:注在屬性上,提供 set 方法@Getter
:注在屬性上,提供 get 方法@EqualsAndHashCode
:注在類上,提供對(duì)應(yīng)的 equals 和 hashCode 方法@Log4j
/@Slf4j
:注在類上,提供對(duì)應(yīng)的 Logger 對(duì)象,變量名為 log
二、注解@TableName、@TableField
@TableName(value = …)
當(dāng)數(shù)據(jù)庫(kù)名與實(shí)體類名不一致或不符合駝峰命名時(shí),需要在此注解指定表名(不加這個(gè)注解默認(rèn)將實(shí)體類的小寫(xiě)形式在db中尋找)
@TableField 字段注解,該注解用于標(biāo)識(shí)非主鍵的字段。將數(shù)據(jù)庫(kù)列與 JavaBean 中的屬性進(jìn)行映射
@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 = …)
指定實(shí)體類的屬性為對(duì)應(yīng)的主鍵,主要有以下幾種:
// 數(shù)據(jù)庫(kù)ID自增 IdType.AUTO // 該類型為未設(shè)置主鍵類型(默認(rèn)) IdType.NONE /** * 用戶輸入ID * <p>該類型可以通過(guò)自己注冊(cè)自動(dòng)填充插件進(jìn)行填充</p> */ IdType.INPUT /* 以下3種類型、只有當(dāng)插入對(duì)象ID 為空,才自動(dòng)填充。 */ //1.全局唯一ID (idWorker) IdType.ID_WORKER //2.全局唯一ID (UUID) IdType.UUID //3.字符串全局唯一ID (idWorker 的字符串表示) IdType.ID_WORKER_STR
@TableField注解
1、 主要用來(lái)解決實(shí)體類的字段名與數(shù)據(jù)庫(kù)中的字段名不匹配的問(wèn)題(數(shù)據(jù)庫(kù)user_addr,字段useraddr未駝峰)
2、 實(shí)體類中的屬性字段在表中不存在的問(wèn)題
// 用來(lái)解決數(shù)據(jù)庫(kù)中的字段和實(shí)體類的字段不匹配問(wèn)題 @TableField(value = "age") // 用來(lái)解決實(shí)體類中有的屬性但是數(shù)據(jù)表中沒(méi)有的字段 @TableField(exist = false) // 默認(rèn)為true
三、MybatisPlus中@TableField注解的使用
字段填充策略 FieldFill
/** * 創(chuàng)建時(shí)間 */ @TableField(fill = FieldFill.INSERT) private Date gmtCreat; /** * 修改人 */ @TableField(fill = FieldFill.INSERT_UPDATE) private Long modifierId;
對(duì)添加了注解@TableField(fill = FieldFill.INSERT_UPDATE)的字段在進(jìn)行插入(insert)和更新(update)時(shí)進(jìn)行自動(dòng)填充。
(解釋:后面會(huì)寫(xiě)配置自動(dòng)填充的配置類,該配置類的作用用于配置自動(dòng)填充的值)。
@TableField(exist=false) private String remark;
@TableField(exist=false)的作用
比如在實(shí)體類中有一個(gè)屬性為remark,但是在數(shù)據(jù)庫(kù)中沒(méi)有這個(gè)字段,但是在執(zhí)行插入操作時(shí)給實(shí)體類的remark屬性賦值了,那么可以通過(guò)在實(shí)體類的remark屬性上添加
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Java代碼實(shí)現(xiàn)判斷春節(jié)、端午節(jié)、中秋節(jié)等法定節(jié)假日的方法
這篇文章主要介紹了基于Java代碼實(shí)現(xiàn)判斷春節(jié)、端午節(jié)、中秋節(jié)等法定節(jié)假日的方法 的相關(guān)資料,需要的朋友可以參考下2016-01-01Java并發(fā)系列之AbstractQueuedSynchronizer源碼分析(獨(dú)占模式)
這篇文章主要為大家詳細(xì)介紹了Java并發(fā)系列之AbstractQueuedSynchronizer源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02Java實(shí)現(xiàn)度分秒坐標(biāo)轉(zhuǎn)十進(jìn)制度
隨著技術(shù)的發(fā)展,十進(jìn)制度因其精確性和便捷性在現(xiàn)代應(yīng)用中越來(lái)越受到青睞,下面我們就來(lái)看看如何使用Java實(shí)現(xiàn)度分秒坐標(biāo)轉(zhuǎn)十進(jìn)制度吧2024-12-12基于Spring Security實(shí)現(xiàn)對(duì)密碼進(jìn)行加密和校驗(yàn)
我們?cè)谌腴T(mén)案例中,其實(shí)已經(jīng)是一個(gè)非常簡(jiǎn)單的認(rèn)證,但是用戶名是寫(xiě)死的,密碼也需要從控制臺(tái)查看,很顯然實(shí)際中并不能這么做,下面的學(xué)習(xí)中,我們來(lái)實(shí)現(xiàn)基于內(nèi)存模型的認(rèn)證以及用戶的自定義認(rèn)證,密碼加密等內(nèi)容,需要的朋友可以參考下2024-07-07