Mybatis批量插入(mapper文件)

连接配置

mysql的批量更新需要主动设置,即在数据库的连接url上加上 &allowMultiQueries=true即可

spring.datasource.url=jdbc:mysql://localhost:3306/sheep2?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true

Mapper文件代码

<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">
        INSERT INTO sheep_flow_info (ear_id,circle_date,old_sheepcot_id,old_sheepfold_id,new_sheepcot_id,new_sheepfold_id,circle_reason,user_id)
        VALUES
        <foreach collection="list"  separator="," item="item">
            (#{item.earId,jdbcType=VARCHAR},
             #{item.circleDate,jdbcType=DATE},
             #{item.oldSheepcotId,jdbcType=INTEGER},
             #{item.oldSheepfoldId,jdbcType=INTEGER},
             #{item.newSheepcotId,jdbcType=INTEGER},
             #{item.newSheepfoldId,jdbcType=INTEGER},
             #{item.circleReason,jdbcType=VARCHAR},
             #{item.userId,jdbcType=INTEGER})
        </foreach>
    </insert>

此处需要显式说明插入的表中对应的字段,即代码中()里的内容,返回类型为void

Dao层代码

public interface SheepFlowInfoDao extends BaseDao<SheepFlowInfo> {
    void batchInsert(@Param("list") List<SheepFlowInfo> list);
}

@Param(“list”)中的list与对应的mapper.xml中循环的foreach中的collection对应,写上此注解后resultType可以不写。

前台批量提交数据到后台参考easyui批量提交数据到Springboot后台

猜你喜欢

转载自blog.csdn.net/summeranhx/article/details/81502746