mybatis+oracle实现批量插入数据

本文介绍了如何使用Mybatis结合Oracle数据库实现批量插入数据的步骤,从JS端传递JSON字符串,到Controller层接收并处理数据,进行批量操作。

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

<!-- 插入用户 -->	
	<insert id="addUser" parameterType="java.util.List">
		INSERT INTO TRAIN_EVENT_USER
    			(VKONT,USER_NAME,EVENT_ID,EVENT_TRANS_ID,ADDRESS,CREATE_TIME,UPDATE_TIME
				,OPTIMISTIC_LOCK_VERSION,ID,TRANS_START_TIME,TRANS_END_TIME,DATA_FROM)
			SELECT vkont,userName,eventId,eventTransId,address,createTime,updateTime,optimisticLockVersion,id,transStartTime,transEndTime,dataFrom
		FROM(
    			<foreach collection="list" item="item" index="index" separator="union all">
    				SELECT   #{item.vkont} vkont
		   					,#{item.userName} userName
		   					,#{item.eventId} eventId
		   					,#{item.eventTransId} eventTransId
		   					,#{item.address} address
		   					,#{item.createTime} createTime
							,#{item.updateTime} updateTime
							,#{item.optimisticLockVersion} optimisticLockVersion
							,#{item.id} id
							,#{item.transStartTime} transStartTime
							,#{item.transEndTime} transEndTime
							,#{item.dataFrom} dataFrom
    				FROM DUAL
    		     </foreach>	
    		     )	
	</insert>

实现批量更新操作

<update id="cancelFaults" parameterType="java.util.ArrayList">
		
			<foreach collection="list" item="bean" index="index" open="begin " close=";end;" separator=";">
	            UPDATE TRAIN_FAULT_EVENT
	            <set>
	                EVENT_STATE = -2
	                ,UPDATE_TIME = #{bean.updateTime}
	                ,OPTIMISTIC_LOCK_VERSION = OPTIMISTIC_LOCK_VERSION+1
	            </set>
	            <where>
	                  CODE = #{bean.code}
				  AND OPTIMISTIC_LOCK_VERSION = #{bean.optimisticLockVersion}
	            </where>
	        </foreach>
		
	</update>

js传入json字符串

var faultList = [];
        	for (var i=0; i<selectIndexArray.length; i++){
        		
        		var fault = {};
        		// 停电单号
        		fault.code = gridTable.getRowsDataByIndex(selectIndexArray[i])[0].code;
        		// 乐观锁版本
        		fault.optimisticLockVersion = gridTable.getRowsDataByIndex(selectIndexArray[i])[0].optimisticLockVersion;
        		
        		faultList.push(fault);
        	}
        	
        	var url = CONTEXTPATH+"/casas/fualtoutage/deleteFault";
        	var data = "faultList="+JSON.stringify(faultList);

        jQuery.post(url
				,data
				,function(d){
			    	if (d != 0){
			    		alert('操作成功');
			    	} else {
			    		alert("操作失败");
			    	}
	    		});

controller类接收json数据

 @RequestMapping("/deleteFault")
    @ResponseBody
    public int deleteFault(@RequestParam("faultList") String faultList) {
        
         // jackson对象 
        ObjectMapper mapper = new ObjectMapper();
         // 使用jackson将json转为List<Object> JavaType jt =
         mapper.getTypeFactory().constructParametricType(ArrayList.class, FaultDTO.class);                 
         List<FaultDTO> list = new ArrayList<FaultDTO>();
         try {
             list = (List<FaultDTO>) mapper.readValue(faultList, jt);
         } catch (JsonParseException e) { 
                e.printStackTrace(); 
            } catch (JsonMappingException e) { 
                e.printStackTrace(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } return faultService.cancelFaults(list);
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值