JFinal中java如何处理数据库查询出的重复数据

一:数据库查询出结果


二:想要的结果为

  同是乒乓球的话,则乒乓球和乒乓球2同在乒乓球下,即乒乓球下有两个实体

三:java代码

  public void get() {
String sql = "SELECT a.id,a.info,s.id as sid,s.sport_name,c.type,c.num from gym_areas a LEFT JOIN sport_items s on a.sport_item_id=s.id”

                                     +“  LEFT JOIN coupon c ON a.id=c.gym_area_id and c.type=6 WHERE a.gym_id=16";
List<Record> list = Db.find(sql);
Map<String, List<Record>> r1 = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
List<Record> r2 = new ArrayList<>();
Record spo = list.get(i);
Object str = r1.get(spo.getStr("sport_name"));
String name = spo.getStr("sport_name");
if (str == null) {
r2.add(0, list.get(i));
r1.put(name, r2);
} else {
List<Record> r = r1.get(name);
r.add(r.size(), list.get(i));
r2.addAll(r);
r1.put(name, r2);
}


}
renderJson(JsonKit.toJson(r1));
}

四:结果示例

{"游泳":[{"sport_name":"游泳","num":3000,"id":26,"type":6,"info":"游泳馆2","sid":3}],
"羽毛球":[{"sport_name":"羽毛球","num":null,"id":28,"type":null,"info":"羽毛球","sid":1}],
"篮球":[{"sport_name":"篮球","num":6000,"id":29,"type":6,"info":"篮球","sid":4}],
"网球":[{"sport_name":"网球","num":null,"id":31,"type":null,"info":"室外网球","sid":2}],
"乒乓球":[{"sport_name":"乒乓球","num":null,"id":30,"type":null,"info":"乒乓球","sid":5},{"sport_name":"乒乓球","num":null,"id":34,"type":null,"info":"乒乓球2","sid":5}]}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值