连接配置
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后台