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:主鍵注解