mybatis plus主鍵自增(mysql、oracle)


1.情景展示

我們知道:使用mybatisPlus插入數據的時候完成主鍵的自增;

如何實現呢?

2.mysql

我們知道:mysql本身的主鍵就是自增的,在插入數據的時候,我們完全可以不插入主鍵字段,mysql數據庫也會自動為我們插入主鍵ID;

所以說,這個主鍵自增與mybatisplus是毫不相關的。

方式一:

mybatisplus不對主鍵字段只做映射,不進行自增處理。

像這樣,插入數據的時候,完全不用理會這個字段,mybatisplus會自動將該字段的值填充為null;

這並不影響mysql數據的正常插入。

方式二:

要想使用mybatisplus的自增,需要為注解@TableId設置type屬性。

第一步:將type的值設為:IdType.AUTO;

第二步:將數據庫該字段設置為自增。

3.oracle

第一步:新建序列;

來到數據庫,比如:plsql;

找到Sequences,右鍵,新建;

為序列起個名字,其它不用填,全部使用默認值,點擊“應用”;

第二步:創建配置類;

import com.baomidou.mybatisplus.core.incrementer.IKeyGenerator;
import com.baomidou.mybatisplus.extension.incrementer.OracleKeyGenerator;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 主鍵ID配置
 * @description:
 * @author: Marydon
 * @date: 2022-01-19 17:33
 * @version: 1.0
 * @email: marydon20170307@163.com
 */
@Configuration
public class KeyGeneratorConfig {
    @Bean
    public IKeyGenerator keyGenerator() {
        return new OracleKeyGenerator();
    }

}

 啟用Oracle主鍵生成器類。

第三步:指定要調用的序列名稱;

並將type的值設為:IdType.INPUT。

調用示例:

手動實例化對象並賦值的時候並沒有對ID進行賦值:

4.常用注解

@TableName:表名注解 (“HW_SHOPPING_PRODUCT”) 代表實體類和數據庫對應的表名;

如果實體類名字和數據庫相同,不用說明也可以。

在這里插入圖片描述

@KeySequence:序列主鍵策略(value = “HW_SHOPPING_PRODUCT_SEQ”, clazz = String.class)

在這里插入圖片描述

@TableId:主鍵注解

在這里插入圖片描述

在這里插入圖片描述

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM