MyBatis2020-04-27学习总结-循环语句

205 阅读1分钟
  1. 批量修改 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>
  1. 这里是映射 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} )