1. 程式人生 > 實用技巧 >實驗五5⃣️5🈚️

實驗五5⃣️5🈚️

技術標籤:mysqljavaspring資料庫

我們平時使用主鍵時會為主鍵加上自增長策略,like this
AUTO INCREMENT
但有時自增長策略並不能滿足我們的專案需求,那我們就需要加一些其他的生成策略。讓我們列一下幾種常用主鍵生成·策略,以及在專案中設定方法
NO1
自動增長:自動增長是我們見過的最基本的生成策略,它遵循的是從1開始依次加1的主鍵策略。
設定方法:

強調一下不要把Long寫成long,會死的很慘,血淚教訓。
@Data
public class User {
    @TableId(type = IdType.AUTO)
    private
Long id; private String name; private Integer age; private String email; } 可以看到我們在主鍵上加上如圖所示註解便可將策略設定為自增長。 這種需要在資料庫上先設定自增長,否者就會報錯說,ID主鍵為空

NO.2
UUID:
這種生成策略每次生成隨機唯一的值,如下圖所示
在這裡插入圖片描述
我們可以看到這種生成策略生成的值很長且為字串格式,其還有一個明顯缺點,那就是排序不方便,字串形式所以很不方便排序
設定方法

@Data
public class User {
    @TableId(type = IdType.
UUID) private String id; private String name; private Integer age; private String email; } 這種需要String型別的主鍵,如果換成Long等型別就會報錯,顯示不匹配

NO.3
ID_WORKER
這是mp自帶策略中一種,用於數字型別,mp就是mybatis plus,這第三中就是它自帶的生成策略。它使用自己的生成演算法生成一個19位數的主鍵值,如下圖所示
在這裡插入圖片描述
設定方法

@Data
public class User {
@TableId(type =IdType.ID_WORKER )
private Long id; private String name; private Integer age; private String email; } 這種適用於數字型別主鍵如Long型別

NO.4
ID_WORKER_STR
這是mp自帶策略中一另種,用於字串型別,mp就是mybatis plus,這第三中就是它自帶的生成策略。它使用自己的生成演算法生成一個19位數的主鍵值,如下圖所示
在這裡插入圖片描述
設定方法

@Data
public class User {
@TableId(type =IdType.ID_WORKER_STR )
    private String id;
    private String name;
    private Integer age;
    private String email;

}
這種用於字串型主鍵如String

NO.5雪花生成策略
這種策略是預設生成策略,如果我們不設定type的值,預設就適用雪花演算法。主鍵為Long型別或者String型別。