distinct一点收获

来源:互联网 发布:和讯网数据爬虫 编辑:程序博客网 时间:2024/05/16 15:38

        表里有几个字段,比如 B1,B2,B3。。。需要唯一的B1对应唯一的B2生成一条记录。

        起初思想是,select distinct B1...一个集合存储;select distinct B2...又一个集合存储;select *...再一个集合存储。然后一层循环套一层循环,里面再一个循环,找到匹配需求的生成记录。。。速度不快!

 

        select distinct xxx.b1,xxx.b2 from XXX xxx...这段HQL可以达到以上需求,一个b1对应一个b2生成一条记录。存储嘛,定义一个VO类,包含B1,B2属性和getter,setter方法;遍历也不难。

  1. B1B42 bb = null;
  2. tx = session.beginTransaction();
  3.             String hql = "上面那段HQL";
  4.             Query q = session.createQuery(hql);
  5.             Iterator it = q.list().iterator(); 
  6.             while(it.hasNext()){ 
  7.                 bb = new B1B2();
  8.                 o = (Object[]) it.next();
  9.                  long s1=(Long)o[0];
  10.                  String s2=(String)o[1];
  11.                  
  12.                 bb.setB1(s1);
  13.                 bb.setB42(s2);
  14.                 list.add(bb);
  15.             }
  16.             tx.commit();
  1. List list = bc();//bc()如上
  2.         for(int i=0;i<list.size();i++){
  3.             B1B2 bb = (B1B2)list.get(i);
  4.             System.out.println(bb.getB1()+" "+bb.getB4());
  5.         }

 

原创粉丝点击