首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

地毯式纠偏顺序号

2012-08-09 
地毯式矫正顺序号/*** 校正 list 中 数据的 序号,并返回id 合适的 顺序号** @param tbl* @param list :相

地毯式矫正顺序号

    /**     * 校正 list 中 数据的 序号,并返回id 合适的 顺序号     *     * @param tbl     * @param list :相关记录的集合,每条记录是一个Map,顺序号字段的名字叫 numSort     * @param id  : 记录ID     * @param numSort : 记录指定的顺序号 (可能偏大,返回值是对它矫正后的值)     * @return id 最后的顺序号     */    public int doSqlSort(String tbl, List<Map> list, int id, int numSort) {        //集合为空        if (list == null || list.isEmpty()) {            return 1;        }        //集合不为空,对集合里面的顺序号进行地毯式矫正        String sql = "update " + tbl + " set NUM_SORT=? where id=?";        Object[] params = new Object[2];        int newNumSort = 0; //记录应该的顺序号        int len = list.size();        for (int i = 0; i < len; i++) {            Map map = list.get(i);            ////System.out.println(" map.get("id")= " +  map.get("id"));            Number id2_number = (Number) map.get("id");            Number numSort2_number = (Number) map.get("numSort");            int id2 = id2_number.intValue();            Integer numSort2 = numSort2_number.intValue();                       //循环到的记录,不是 当前记录            if (id2 != id) {                newNumSort++;                if (newNumSort == numSort) {                    newNumSort++;                }            }               //记录的数据库中顺序号与新顺序号不相等,更新数据库                     if (newNumSort != numSort2) {                               params[0] = newNumSort;                params[1] = id2;                jdbcDao.doUpdate(sql, params);            }        }                //特殊情况,numSort 要调整        if (numSort > len || numSort == 0) {            numSort = len;            if (id == 0) {                numSort = len + 1;            }        }        //参数id那条记录 应该的 顺序号        return numSort;    }


    public void doSaveUpdate(ZzjzMoban zzjzMoban) {        int id = zzjzMoban.getId();        int numSort = zzjzMoban.getNumSort();        String sql = "select id,numSort from zzjzMoban order by numSort";        List<Map> list = super.getSqlItems(sql, null);        numSort = super.doSqlSort("zzjzMoban", list, id, numSort); //校正序号        zzjzMoban.setNumSort(numSort); //新的序号        if (id == 0) {            super.doSave(zzjzMoban);        } else {            ZzjzMoban moban2 = (ZzjzMoban) super.getPo(ZzjzMoban.class, id);            moban2.setBrief(zzjzMoban.getBrief());            moban2.setTitle(zzjzMoban.getTitle());            moban2.setPhoto(zzjzMoban.getPhoto());            moban2.setNumSort(zzjzMoban.getNumSort());        }    }

热点排行