Mybatis插入数据后返回主键id

有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段。

单条记录插入并返回

First, if your database supports auto-generated key fields (e.g. MySQL and SQL Server), then you can simply set useGeneratedKeys="true" and set the keyProperty to the target property and you're done. For example, if the Authortable above had used an auto-generated column type for the id, the statement would be modified as follows。


  insert into Author (username,password,email,bio)
  values (#{username},#{password},#{email},#{bio})
添加useGeneratedKeys="true" 以及keyProperty="id"即可。id为实体类中的字段名称

多条记录插入并返回


If your database also supports multi-row insert, you can pass a list or an array of Authors and retrieve the auto-generated keys.


  insert into Author (username, password, email, bio) values
  
    (#{item.username}, #{item.password}, #{item.email}, #{item.bio})
  

坑:要注意,多条记录时,有可能会出现id没有返回的情况。检查以下几点:

1、Mybatis版本3.3.1及其以上。

2、在Dao中不能使用@param注解。

3、Mapper.xml中使用list变量接受Dao中的集合。



你可能感兴趣的:(java,数据库相关)