Mybatis中批量新增与批量修改的写法

本文详细介绍了如何在MyBatis中使用批量插入和更新StockInfo实体的方法。通过示例展示了如何构建List集合并调用mapper的batchInsert和batchUpdate方法,实现数据库的高效批量操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.传入方法:

 list<StockInfo>  stokkInfos =new ArrayList<>();
 StockInfo stockInfo = new StockInfo();
 stockInfo.setEquipmentNo = 123456;
                .
                .
                .
   stockInfos.add(stockInfo);    //修改时需要把id传过来
   stockInfoMapper.batchInsert(stockInfos);

2.dao层方法://在service层自动创建就好

 void batchInsert(List<StockInfo> stockInfos);

3.批量新增的方法

 <insert id="batchInsert"
    		parameterType="com.erp.entity.StockInfo"   //自己的实体位置
    		useGeneratedKeys="true" keyProperty="id">
    		insert into
            stock_info(warehouse_info_id,equipment_info_id,equipment_no,number,state,price,create_time,
             create_user_name,create_user_id,in_pk_id,in_stock_type,in_stock_time,memo,create_post_id,
             stock_form)
    		values
    		<foreach collection="list" item="item" separator=",">  //以list的方式传入,item是随便取的叫什么都可以
    			(#{item.warehouseInfoId},#{item.equipmentInfoId},#{item.equipmentNo},#{item.number},
    			#{item.state},#{item.price},#{item.createTime},#{item.createUserName},#{item.createUserId},
    			#{item.inPkId},#{item.inStockType},#{item.inStockTime},#{item.memo},#{item.createPostId},
    			#{item.stockForm})
    		</foreach>
    	</insert>

4.批量修改的方法

<update id="batchUpdate"
		parameterType="com.huge.erp.entity.StockInfo"
		useGeneratedKeys="true" keyProperty="id">
		<foreach collection="list" item="item" separator=";">
		  update
		   stock_info  set
		     <trim prefix="" suffix=" " suffixOverrides=",">
			<if test="item.warehouseInfoId != null">
				warehouse_info_id=#{item.warehouseInfoId},
			</if>
			<if test="item.equipmentInfoId != null">
				equipment_info_id=#{item.equipmentInfoId},
			</if>
			<if test="item.equipmentNo != null">
				equipment_no=#{item.equipmentNo},
			</if>
			</trim>
			where id = #{item.id}
		</foreach>
	</update>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值