数据封装

在开发中刚刚接触到了数据的封装,项目需求要我们封装一个如下的数据格式,由于经验不足困扰许久


 mydata: {
       '父类id': [
            {
              id: 子类id,
              label: '子类名字',
            },
			{
              id: 子类id,
              label: '子类名字',
            },
          ]
        },

经过多方查询,终于搞出来一版实现模式如下


//定义一个list集合承接我查询到的数据
        List<PiontType> list = riskPiontTypeMapper.chaxun();
        //这里用到了HashMap集合,键值对,键为父id,值为查到的子数据的集合
        HashMap<Long, ArrayList<PointType1>> hashMaps = new HashMap<>();
		// 对查询出来的数据进行遍历
        for (PiontType piontType : list) {
            // 获取父类id
            Long pointId = piontType.getPointId();
            // 根据父类id查询子类信息
            QueryWrapper<PiontType> listQueryWrapper = new QueryWrapper<PiontType>();
            listQueryWrapper.eq("point_id", pointId);
            List<PiontType> piontTypes1 = piontTypeMapper.selectList(listQueryWrapper);
		    //由于我的数据格式和查询出来的数据类型和前端需要不同,我又重新定义了一个模型来承接所需的类型
            ArrayList<PointType1> PointTypes = new ArrayList<PointType1>();
            // 对新集合进行遍历赋值
            for (PiontType piontType : PiontTypes1) {
                PointType1 pointType1 = new PointType1();
                pointType1.setId(aqMkFxRiskPiontType.getRiskTypeId());
                pointType1.setLabel(aqMkFxRiskPiontType.getRiskType());
                pointType1.setRiskPointId(aqMkFxRiskPiontType.getRiskPointId());
                PointTypes.add(pointType1);
            }
            // 将查询出来需要的内容放到hashMap中
            hashMaps.put(pointId, PointTypes);
        }

由于经验不足,该方法可能是比较笨的方法,如果哪位大神有更好的方法,可以说一下,小弟想继续学习一下

posted @ 2022-09-15 14:04  l-relax  阅读(158)  评论(0)    收藏  举报