有时候使用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 >  
  insert into Author (username,password,email,bio)  
  values (#{username},#{password},#{email},#{bio})  
</insert> 

  

添加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 >  
  insert into Author (username, password, email, bio) values  
  <foreach item="item" collection="list" separator=",">  
    (#{item.username}, #{item.password}, #{item.email}, #{item.bio})  
  </foreach>  
</insert>  

  

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

1、Mybatis版本3.3.1及其以上。

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

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

相关文章:

  • 2021-05-25
  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
  • 2021-05-31
  • 2021-07-11
  • 2022-12-23
  • 2018-01-18
猜你喜欢
  • 2022-12-23
  • 2021-04-09
  • 2022-12-23
  • 2021-08-31
  • 2021-06-02
  • 2022-12-23
  • 2021-11-20
相关资源
相似解决方案