最近需要做个功能,批量修改报警过滤

1.pojo

public class AlarmFilterCustom extends AlarmFilter {
    private String wtitle; // 默认的标题
    private String lang; // 语言
    private String orderby; // 排序字段
    private String likename; // 模糊检索类
    private List<AlarmFilterCustom> filter; // 更新的数组,做mysql批量操作的参数
    private Integer grpid;
    private String text;

省略set,get方法}

   

2.AlarmFilterCustom param = new AlarmFilterCustom();
            for(int i = 0; i < alarmFilterCustoms.size(); i++){
                alarmFilterCustoms.get(i).setUid(userInfo.getGid());
            }
            param.setFilter(alarmFilterCustoms);

3.    <!-- 新增数据 -->
    <insert id="addAlarmRecord" parameterType="java.util.List" useGeneratedKeys="true"
        keyProperty="id">
        
        <foreach collection="filter" index="index" item="item" separator=";">
        insert into t_alarmfilter (uid, aid, notice, web, app, mail) values 
        ( #{item.uid}, #{item.aid}, #{item.notice}, #{item.web}, #{item.app}, #{item.mail})
        ON DUPLICATE KEY UPDATE //判断是执行新增还是更新,如果数据库存在uid,aid相同的数据,则更新,否则新增
         uid = #{item.uid}, aid = #{item.aid}, notice = #{item.notice}
        </foreach> 
        
        
    </insert>

4.mysql,表配置

mysql foreach 批量操作

二:
1.jsp
  var data = {batch: []}
    for (var i = 0; i < idlist.length; i++) {
        data.batch.push(idlist[i]);
    }
   
    
    data = JSON.stringify(data);
    data = encodeURIComponent(data);
    var _url = '${ctx}/datamotor/alarm/read?data=' + data;

2.后台
        一。ListIntegerParam list = (ListIntegerParam) Common.jsonToObj(data, ListIntegerParam.class);
  AlarmNoticeCustom param = new AlarmNoticeCustom();
            param.setBatch(list.getBatch());
            alarmNoticeService.updateRecord(param);

二。public class ListIntegerParam {
    
    private List<Integer> batch;


    public List<Integer> getBatch() {
        return batch;
    }


    public void setBatch(List<Integer> batch) {
        this.batch = batch;
    }


}
三。pojo
mysql foreach 批量操作
3.xml
    <!-- 批量更新,这里要注意item的长度 mysql对长度有要求,系统中默认配置为2096个字节 -->
    <update id="updateRecord" parameterType="com.s3.po.AlarmNoticeCustom">
        update gps.t_alarmnotice set readed = 1 where id in 
        <foreach collection="batch" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>

相关文章: