2023-03-27 MyBatis 自动生成ID

1 selectKey

<insert id="insertSelective" parameterType="cn.XXX.xxx.server.xxx.entity.AResult">
      <selectKey keyProperty="pk" order="AFTER" resultType="java.lang.Integer">
          SELECT
          LAST_INSERT_ID()
      </selectKey>

2. useGeneratedKeys

  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="cn.XXX.AAA" useGeneratedKeys="true">
    <!--@mbg.generated-->
    insert into aaa(image_id, image_uid, study_uid, 
>

3. selectKey与useGeneratedKeys两者的区别

3.1 显示与隐式:

selectKey标签需要明确编写获取最新主键的sql语句
UseGeneratedKey属性会自动根据驱动生成对应sql语句
应用场景:

selectKey适用于所有的关系型数据库
UseGeneratedKey只支持 “自增主键” 类型的数据库

3.1.1 在Oracle中selectKey的使用

image.png

3.1.2 在MySQL中selectKey的使用

<selectKey resultType="Integer" keyProperty="goodsId" order="AFTER">

select last_insert_id()

</selectKey>

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容