一、@TableId註解的用途
MybatisPlus是基於Mybatis的增強工具,提供了很多便捷的註解和方法。@TableId註解是其中的一個。它的作用是標註實體類的主鍵欄位,並且可以指定主鍵策略。如果實體類沒有聲明主鍵欄位,MybatisPlus會自動識別實體類中的名為"id"的欄位為主鍵。示例代碼如下:
@Data @TableName("user") publicclassUser{ @TableId(value="user_id",type=IdType.AUTO) privateIntegeruserId; privateStringname; privateIntegerage; privateStringemail; //省略getter和setter }
上面的代碼中,@TableId註解標註在userId欄位上,指定主鍵名為"user_id",並且指定自增主鍵策略,即IdType.AUTO。
二、@TableField註解的用途
除了主鍵欄位,實體類還有其他的欄位需要映射到資料庫表中。@TableField註解的作用就是標註和資料庫表欄位的對應關係。示例代碼如下:
@Data @TableName("user") publicclassUser{ @TableId(value="user_id",type=IdType.AUTO) privateIntegeruserId; @TableField("user_name") privateStringname; privateIntegerage; privateStringemail; //省略getter和setter }
上面的代碼中,@TableField註解標註在name欄位上,指定實體類中的名字為"name",但是對應的資料庫表中的欄位名為"user_name"。
三、聯合主鍵註解的用途
在實際的業務場景中,某些表的主鍵可能不只一個欄位。這時,就需要用到MybatisPlus的聯合主鍵註解。@TableId註解可以用在聯合主鍵上,但是需要指定type屬性為IdType.INPUT,然後在實體類中聲明多個主鍵欄位,用@TableField指定每個欄位對應的資料庫表中的欄位名。示例代碼如下:
@Data @TableName("user") publicclassUser{ @TableId(value="user_id",type=IdType.INPUT) @TableField("user_id") privateIntegeruserId; @TableId(value="product_id",type=IdType.INPUT) @TableField("product_id") privateIntegerproductId; privateStringname; privateIntegerage; privateStringemail; //省略getter和setter }
上面的代碼中,@TableId註解標註在userId和productId欄位上,指定主鍵名和資料庫表欄位名都為"user_id"和"product_id"。
四、多個聯合主鍵註解的用途
有時候,聯合主鍵並不是只有兩個欄位,可能有三個或者更多的欄位。MybatisPlus同樣支持這種情況,只需要在實體類中聲明多個主鍵欄位,並且在每個欄位上面標註@TableId註解和@TableField註解。示例代碼如下:
@Data @TableName("order") publicclassOrder{ @TableId(value="order_id",type=IdType.INPUT) @TableField("order_id") privateIntegerorderId; @TableId(value="product_id",type=IdType.INPUT) @TableField("product_id") privateIntegerproductId; @TableId(value="user_id",type=IdType.INPUT) @TableField("user_id") privateIntegeruserId; privateDoubleprice; privateIntegerquantity; //省略getter和setter }
上面的代碼中,@TableId註解標註在orderId、productId和userId欄位上,指定主鍵名和資料庫表欄位名都為"order_id"、"product_id"和"user_id"。
五、總結
MybatisPlus的聯合主鍵註解可以很方便地處理多個欄位組成的主鍵。@TableId註解用於標註主鍵欄位,可以指定主鍵名和主鍵策略;@TableField註解用於標註普通欄位,可以指定欄位名和欄位類型。在使用聯合主鍵註解時,需要在每個主鍵欄位上面都加上@TableId註解和@TableField註解,非常靈活。
原創文章,作者:SWBEQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372209.html