MyBatis新增操作返回自增主键

MyBatis新增操作设置完获取新增主键后,该框架是把主键值放到了参数对象上,获取主键值需要用参数对象去get主键值

一. useGeneratedKeys=true

<insert id="insert" parameterType="Entity" useGeneratedKeys="true" keyProperty="id">
      insert into table_A (column_1, column_2, ...) values(#{property1}, #{property2}, ...) 
</insert>

<!-- MyBatis3.4.0之后支持批量插入并获取自增主键值 -->
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
      insert into table_A (column_1, column_2, ...) values
      <foreach collection="list" item="item" separator=",">
          (#{item.property1}, #{item.property2}, ...)
      </foreach>
</insert>

二. selectKey

<insert id="insert" parameterType="Entity">  
<!--
        selectKey:会将 SELECT LAST_INSERT_ID()的结果放入到传入的 entity的主键里面;
        keyProperty:对应的 entity中的主键的属性名,跟数据库的主键对应;  
        order:AFTER 表示 SELECT LAST_INSERT_ID() 在insert执行之后执行,多用与自增主键; 
               BEFORE 表示 SELECT LAST_INSERT_ID() 在insert执行之前执行,这种适合那种主键不是自增的类型;
        resultType:主键类型;
 -->  
    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">  
        SELECT LAST_INSERT_ID()  
    </selectKey>  
    insert into table_A (column_1, column_2, ...) values(#{property1}, #{property2}, ...)  
</insert> 
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值