批量添加,批量更新原理类似于批量删除,批量添加可以用在Excel文件导入时过滤出导入成功的数据进行批量添加到数据库,只对数据库进行一次访问。
批量添加
1、mapper.xml层代码
1 <insert id="saveRosters" parameterType="java.util.List" useGeneratedKeys="false"> 2 insert into roster(customer_id, job_number, full_name, sex, mobile, id_type, 3 id_card, bank_name, bank_account, type_of_work) 4 values 5 <foreach collection="rosterVO" index="index" item="roster" //collection中的属性值是传入的属性名称 6 open="" separator="," close=""> 7 (#{roster.customerId},#{roster.jobNumber},#{roster.fullName},#{roster.sex},#{roster.mobile}, 8 #{roster.idType},#{roster.idCard},#{roster.bankName},#{roster.bankAccount},#{roster.typeOfWork}) 9 </foreach> //#{}中的roster是item中的属性名称,需要保持一致 10 </insert>
2、mapper.java层代码
1 /** 2 * 批量添加承揽人信息 3 * @param rosters 4 */ 5 void saveRosters(@Param("rosterVO")List<RosterVO> rosterVO); //参数名对应mapper.xml中collection中的属性名称 6 //注意此处的List<RosterVO> rosterVO属性是RosterVO返回类中的属性(也就是自己类中加入自己的集合),
7 //此时xml中的参数类型要注意,另外这个属性需要进行绑定
批量修改更新
1、mapper.xml层代码
<update id="updateRosterByIdCard" parameterType="java.util.List"> <foreach collection="rosterVO" index="index" item="item" open="" separator="," close=""> //open和close等于"",不需要加开始结尾符号,否则报错 update roster <set> rs_job_number = #{item.rsJobNumber}, rs_sex = #{item.rsSex}, rs_type_of_work = #{item.rsTypeOfWork}, rs_id_card_type = #{item.rsIdCardType} </set> where rs_id_card = #{item.rsIdCard} and scc_id = #{item.sccId} </foreach> </update>
2、mapper.java层代码
/** * 四要素相同情况下修改其他信息 * @param rosterVO * @return */ Boolean updateRosterByIdCard(@Param("rosterVO")List<RosterVO> rosterVO);