在插入数据之后,如何获取到主键值 ?   @Options(useGeneratedKeys = true, keyProperty = "id")

@Options注释是MyBatis框架提供的一个注解,主要用于在Mapper接口方法上配置执行选项,替代传统XML映射文件中的属性设置。通过注解形式可更灵活地控制SQL执行行为,例如主键生成、缓存策略、超时时间等。

核心功能

  • 主键回填(仅在支持自动生成主键的数据库(如MySQL、SQL Server)等中有效
    通过MyBatis useGeneratedKeysMyBatis keyProperty属性,可在插入数据后自动获取数据库生成的自增主键,并将值赋给指定对象属性(如@Insert(useGeneratedKeys=true, keyProperty="id")

在插入数据之后,如何获取到主键值 ?   @Options(useGeneratedKeys = true, keyProperty = "id") 

<foreach> 作用:遍历集合/数组/属性 |  collection:集合名称 | item:为每次迭代分配的别名,用于引用当前迭代的元素。 | separator:每一次遍历使用的分隔符(可选)  | open:遍历开始前拼接的片段(可选) |  close:遍历结束后拼接的片段(可选) 

  • 缓存控制
    支持配置是否刷新缓存MyBatis flushCache),例如设置@Select(flushCache=true)可强制刷新缓存。
  • 执行超时
    通过MyBatistimeout属性设置SQL执行超时时间(毫秒),例如@Insert(timeout=1000)
  • 结果集处理
    支持配置结果集类型(如MyBatisResultType)和返回行数(fetchSize)。

例:

@Insert(useGeneratedKeys=true, keyProperty="id")  
@Options(flushCache=true, timeout=1000)  
@Select(ResultType=ResultType.MAP)  

关键一点:xml insert中别忘了加useGeneratedKeys="true" keyProperty="id"

posted @ 2025-10-03 11:45  休玛  阅读(8)  评论(0)    收藏  举报