MyBatis:插入数据后如何获取自增长主键值

MyBatis:插入数据后如何获取自增长主键值

Mapper映射文件的示例如下:

<mapper namespace="userMapper">
    <!--方式1 -->
    <insert id="addUser" parameterType="userScope" useGeneratedKeys="true" keyProperty="id">
        insert user(user_name,pass_word,address) values (#{userName},#{passWord},#{address})
    </insert>
    
    <!-- 方式2-->
    <insert id="insertSelectKey" parameterType="userScope">
    
        <selectKey keyProperty="id" resultType="int">
            select LAST_INSERT_ID()
        </selectKey>
        
        insert user(user_name,pass_word,address) values (#{userName},#{passWord},#{address})
    </insert>
</mapper>

上面写了两种方式用来获取自增长主键。一种是使用useGemeratedKeys,一种是使用的方式。这两种方式获取自增长主键的ID的方式是一样的,都是从参数对象中获取自增长主键值。

注意:MyBatis3.4.0之后已经支持批量插入并获取自增主键值了。

    <insert id="addUserBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
      insert user(user_name,pass_word,address) values
      <foreach collection="list" item="item" separator=",">
          ( #{item.userName},#{item.passWord},#{item.address} )
      </foreach>
    </insert>
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页