注意资源利用 不然导致资源消耗会很严重
for(Shop s:list) { System.out.println(s.getName()); String sql="select shopId,sum(ele_bank+ele_card+water_card+water_bank+coal_card+coal_bank) as zonghe ,sum(sale_bank+sale_card) as sale,sum(cigarette_card+cigarette_bank) as bacco, sum(yidong_card+yidong_bank+dianxin_card+dianxin_bank) as recharge from hs_shop_items where record_time like '%2013-12-12%' and shopId="+s.getId(); Session officeSession=officeSessionFactory.openSession(); officeSession.beginTransaction(); SQLQuery queryOffice=officeSession.createSQLQuery(sql); List<ShopTransDTO> r=queryOffice.addEntity(ShopTransDTO.class).list(); res.add(r.get(0)); }
如上图中的
Session officeSession=officeSessionFactory.openSession(); officeSession.beginTransaction();
这个部分放在循环中是错误的
应该这么写:
Session officeSession=officeSessionFactory.openSession(); officeSession.beginTransaction(); for(Shop s:list) { System.out.println(s.getName()); String sql="select shopId,sum(ele_bank+ele_card+water_card+water_bank+coal_card+coal_bank) as zonghe ,sum(sale_bank+sale_card) as sale,sum(cigarette_card+cigarette_bank) as bacco, sum(yidong_card+yidong_bank+dianxin_card+dianxin_bank) as recharge from hs_shop_items where record_time like '%2013-12-12%' and shopId="+s.getId(); SQLQuery queryOffice=officeSession.createSQLQuery(sql); List<ShopTransDTO> r=queryOffice.addEntity(ShopTransDTO.class).list(); res.add(r.get(0)); }