Mybatis中插入记录后获取该条记录ID

之前面试中遇到过这个问题,当时没有回答上来,现在做下笔记记录一下。

主键生成有两种方式
1、主键自增长,这种是需要得到插入成功后数据库生成的id。
2、自定义主键(使用UUID或其他方式),这种一般是现在java代码中生成id,然后存入数据库。

MyBatis 中主键回填的两种实现方式
1、推荐方式:


    insert into t_user  (name,password)  values  (#{name}, #{password});

设置useGeneratedKeys=“true”,设置keyProperty=“id”,接收回传主键的属性id,成功后id的值就是回传主键的值。

2、使用 MySQL的 LAST_INSERT_ID()

    
   insert into t_user (name) values (#{user.name})
      
           SELECT LAST_INSERT_ID() AS userId
      

这里是用User类接收,也可自定义属性接收。

你可能感兴趣的:(Mybatis,MySQL)