mybatis 批量插入返回主键id

1、首先mybatis必须是3.3.1以上版本

org.mybatis
mybatis
3.3.1

2、其次mybatis-spring必须是1.3.0以上版本

org.mybatis
mybatis-spring
1.3.0

注意:低于1.3.0版本会报如下错误
org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout()Ljava/lang/Integer;

mytais 与 spring 版本对应
关于这种问题的根源可以查看mybatis的官网对于mybatis—spring jar包版本的应用
mybatis 批量插入返回主键id_第1张图片
通过这个对应关系来选择你需要的mybatis-spring jar 包的版本
我之前使用的是spring 4.1+mybatis 3.4 而mybatis-spring 使用的是1.2版本,导致项目报错,改成1.3.0 版本后一切正常!!

3、mybatis配置

mapper配置:

int batchInsert(@Param("recordDetailEntityList") List<RecordDetailEntityList> recordDetailEntityList);

xml配置:

<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into reverse_record_detail
        (user_id, order_no)
        values
        <foreach collection="recordDetailEntityList" item="item" index="index" separator=",">
            (#{item.userId,jdbcType=INTEGER},  #{item.orderNo,jdbcType=VARCHAR})
        </foreach>
    </insert>

你可能感兴趣的:(mysql,java)