java同一表中数据无父级ID分组写入缓存,并在页面读取,在页面遍历map

如果数据在同一张表中,数据没有pID字段,需要分组显示的时候,可以通过反复查询数据库的方式实现,这种方式效率很低,下面分享一种比较高的查询方式

这是整体的方法

  1. measuringUnitMap=new HashMap<String, List<MeasuringUnit>>();  //实例化一个hashMap
  2. for(MeasuringUnit mu:this.measuringUnitService.findList()){
  3.  //获取该表的所有数据并遍历数据
  4. List<MeasuringUnit> mls=measuringUnitMap.get(mu.getUnitCategory());  //根据key查找出相对应的list
  5. if(mls==null){
  6. mls=new ArrayList<MeasuringUnit>();
  7. }
  8. mls.add(mu);
  9. measuringUnitMap.put(mu.getUnitCategory(), mls);//把key值和对应的list放入map
  10. }

接下来就是写入缓存.写入缓存的方法,已封装暂时不展示,最后在页面上展示,遍历map

<select name="detectionUnit" id="detectionUnit">
<#list measuringUnitMap?keys as key>
<optgroup label="<@my.view value="${key}" pvalue="unitType" />">
<#list measuringUnitMap[key] as unit>
<option value=${unit.id!''} <#if (detectionUnit??)!''==unit.id>selected</#if> >
${(unit.name)!''}</option>
</#list>
</optgroup>
</#list>
</select>

转载于:https://www.cnblogs.com/topadu/p/9515811.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值