003 主键问题

Posted trekxu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了003 主键问题相关的知识,希望对你有一定的参考价值。

一.概述

主键的问题在mybatis-plus之中给出了一个解决方法,我们可以指定一个主键生成策略.

本节我们来说明一下主键的问题.


 

二 .主键生成策略

public enum IdType {
    AUTO(0, "数据库ID自增"), INPUT(1, "用户输入ID"),

    /* 以下2种类型、只有当插入对象ID 为空,才自动填充。 */
    ID_WORKER(2, "全局唯一ID"), UUID(3, "全局唯一ID"), NONE(4, "该类型为未设置主键类型"),
    ID_WORKER_STR(5, "字符串全局唯一ID");

我们看一下,这里已经有了我们常用的主键生成策略了.

  我们可能常用的就是auto策略,或者是全局唯一的注解,或者是UUID.

  上面的主键生成策略都是我们可以接受的.


 

三 .获取插入值的主键值

    @Test
    public void insertForPrimaryKey() {
        User user = User.builder().lastName("trek").
                gender(1).age(12).build();
        int result = userMapper.insert(user);
        System.out.println(result);
        System.out.println(user.getId());
    }
JDBC Connection [[email protected]] will not be managed by Spring
==>  Preparing: INSERT INTO sys_user ( last_name, gender, age ) VALUES ( ?, ?, ? ) 
==> Parameters: trek(String), 1(Integer), 12(Integer)
<==    Updates: 1
Closing non transactional SqlSession [[email protected]]
1
4

我们发现,mybatis-plus会帮助我们自动的获取主键值,这个是我们非常喜欢看到的.

以上是关于003 主键问题的主要内容,如果未能解决你的问题,请参考以下文章

[新增EA003考勤系统演示片段]全程字幕-22套UML+Enterprise Architect建模示范视频

如何使主键以特定字母开头?

003--PowerDesigner创建索引与外键

如何使用某些前缀使 MySQL 表主键自动递增

003-代码补全,运行,调试

003. 连接access数据库代码