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 [com.mysql.jdbc.JDBC4Connection@6ee6f53] 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 [org.apache.ibatis.session.defaults.DefaultSqlSession@7d1cfb8b]
1
4

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