- 批量修改 annotation:集合中的每个对象都为item,与vo类映射对应,
<update id="update-ItsmForItilByIp-Batch" parameterType="itsmdevice.vo.ItsmDeviceVO">
<foreach collection="list" item="item" separator=";">
UPDATE TBL_ITSM_DEVICE SET
itil_id = #{item.itilId},
sample_time = #{item.sampleTime}
where device_ip = #{item.deviceIp}
</foreach>
</update>
-
这里是映射 annotation: vo类中必须有集合的属性,映射到xml文件中就是collection的标签中的内容,这里最好将sql中起别名, 然后将result映射对应,这样结构清晰;
<collection property="portVOList" ofType="itildevice.vo.ItilDevicePortVO"> <result property="id" column="port_id"/> <result property="deviceId" column="port_device_id"/> <result property="portId" column="port_port_id"/> <result property="portDisplayName" column="port_port_display_name"/> <result property="portIp" column="port_port_ip"/> <result property="inputRate" column="port_input_rate"/> <result property="outputRate" column="port_output_rate"/> <result property="sampleTime" column="port_sample_time"/> <result property="createTime" column="port_create_time"/> </collection> <collection property="volumeVOList" ofType="itildevice.vo.ItilDeviceVolumeVO"> <result property="id" column="volume_id"/> <result property="deviceId" column="volume_device_id"/> <result property="volumeId" column="volume_volume_id"/> <result property="volumeDisplayName" column="volume_volume_display_name"/> <result property="diskUsedPct" column="volume_disk_used_pct"/> <result property="diskFreeSize" column="volume_disk_free_size"/> <result property="diskSize" column="volume_disk_size"/> <result property="sampleTime" column="volume_sample_time"/> <result property="createTime" column="volume_create_time"/> </collection>批量插入 annotation:serviceimpl传入list集合,collection遍历list集合,item为每个元素,index为下标,separator为分隔符 INSERT INTO TBL_ITSM_DEVICE ( device_type, device_ip ) VALUES ( #{obj.deviceType}, #{obj.deviceIp} )