MyBatis-Plus添加:常用主鍵策略的分析及實(shí)現(xiàn)

MyBatis-Plus在MyBatis的基礎(chǔ)上只做增強(qiáng),不做改變,目的是為了簡(jiǎn)化開發(fā),提高效率。本專欄六篇文章圍繞MyBatis-Plus的常用技術(shù)點(diǎn),結(jié)合springboot,實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫(kù)記錄的CRUD操作,其他文章請(qǐng)參考:


作者:Hudie
個(gè)人公眾號(hào)/CSDN博客:編程一只蝶
項(xiàng)目已開源至gitee:https://gitee.com/guo-qianliang/mybatis-plus-test
項(xiàng)目已開源至github:https://github.com/Guoqianliang/mybatis-plus-test


MyBatis-Plus自動(dòng)生成了一個(gè)id

在上文《MyBatis-Plus入門案例:查詢數(shù)據(jù)庫(kù)中所有記錄》中,已經(jīng)搭建好了環(huán)境并測(cè)試了查詢操作,接下來(lái)測(cè)試添加操作,具體測(cè)試代碼如下:

    @Test
    public void testAdd(){
        User user = new User(null,"lucy",23,"lucy@qq.com");
        int insert = userMapper.insert(user);
        // 返回影響行數(shù)
        System.out.println(insert);
    }

添加時(shí)自動(dòng)生成了默認(rèn)主鍵策略

我們?cè)趧?chuàng)建表的時(shí)候并沒(méi)有設(shè)置自動(dòng)增長(zhǎng),并且添加時(shí)設(shè)置id為null。但是卻自動(dòng)出現(xiàn)了一串長(zhǎng)長(zhǎng)的id,這串id是由MyBatis-Plus為我們自動(dòng)生成的,它叫做主鍵策略。接下來(lái)就講解MyBatis-Plus的主鍵策略技術(shù)。

ASSIGN_ID默認(rèn)策略

使用注解可以實(shí)現(xiàn)主鍵策略,MyBatis-Plus默認(rèn)的主鍵策略是:ASSIGN_ID (底層使用了雪花算法)

    @TableId(type = IdType.ASSIGN_ID)

主鍵策略

上述主鍵策略中,常用的是ASIGN_IDAUTO,剩下的ASSIGN_UUID是自動(dòng)生成一個(gè)隨機(jī)值,INPUT則是手動(dòng)設(shè)置值。

AUTO自增策略

若使用AUTO自增策略,則需要在創(chuàng)建數(shù)據(jù)表的時(shí)候設(shè)置主鍵自增。在實(shí)體字段中如下配置:

     @TableId(type = IdType.AUTO)

要想影響所有實(shí)體的配置,還可以設(shè)置全局主鍵策略:

    #全局設(shè)置主鍵生成策略
    mybatis-plus.global-config.db-config.id-type=auto

至此,關(guān)于MyBatis-Plus的主鍵策略測(cè)試完成。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容