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

在这里插入图片描述

在这里插入图片描述

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

posted @ 2022-01-20 17:58  Marydon  阅读(9809)  评论(0编辑  收藏  举报