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

    在这里插入图片描述

    在这里插入图片描述

    写在最后

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

     相关推荐:

  • 相关阅读:
    第一章 Java Collections Framework总览
    MySQL常用sql语句
    static关键字
    Mysql常用索引及优化
    JDK安装及环境变量配置
    破解IntelliJ IDEA 2017
    Spring自我总结
    Java中根据字节截取字符串
    外键的主要作用:保持数据的一致性、完整性
    使用SSI框架写的简单Demo(查询模块)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/15827489.html
Copyright © 2020-2023  润新知