插入实体自增主键太长,mybatis-plaus自增主键

1、问题

spring-boot整合mybtais执行insert语句时,主键id为长文本数据。

2、分析问题

        1)数据库主键是否自增

        2)数据库主键的种子值设置的多少

3、解决问题

        1)数据库主键设置的时自增

        3)种子值是1

        所以排查是数据库的问题

4、继续归因

        1、打印项目执行sql日志,发现insert执行语句中,id已经赋值。

        2、分析id复制语句,发现是mybatis-plaus自动赋值。

5、mybatis-plaus主键策略

        发现mybatis-plus默认的主键生成是全局唯一的UUID,会导致生成的id过长。

AUTO 数据库自增 数据库表主键设置为自增
INPUT 用户输入 ID 用户提供主键值
ID_WORKER 使用 Snowflake 算法生成全局唯一 ID(Long 类型) 分布式系统中生成全局唯一 ID
UUID 使用 UUID 算法生成全局唯一 ID(String 类型) 需要全局唯一的字符串 ID
NONE 未设置主键类型 需要手动设置主键值
ID_WORKER_STR 使用 Snowflake 算法生成全局唯一 ID(String 类型) 生成全局唯一字符串 ID

插入实体自增主键太长,mybatis-plaus自增主键_第1张图片

   插入实体自增主键太长,mybatis-plaus自增主键_第2张图片

你可能感兴趣的:(mybatis,oracle,数据库)