<!-- 插入用户 -->
<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);
}