zoukankan      html  css  js  c++  java
  • SSH统计热卖商品(解决类型转换问题)

    public List<SalesVolume> getHot(){
        Configuration config = new Configuration().configure();
        SessionFactory sessionFactory = config.buildSessionFactory();
        Session session = sessionFactory.openSession(); 
        String hql = "selecto.product.p_id as id,o.product.p_name as name ,o.product.p_picture as picture, count(*) as num"+
                "from edu.nju.desserthouse.model.Order as o group by o.product.p_id order by num desc";
        Query query = session.createQuery(hql);
        query.setMaxResults(4);
        List products = query.list();
        session.close();
        sessionFactory.close();
        if(products.size()>0)
            return products;
        return null;
    }

    虽然返回的是list的结构类型,但是hibernate 只能是object的数据类型

    问题难点:如何将object转化为我们需要的数据类型?

    /**
    * 将统计得到的链表转为数据结构为SalesVolume的ArrayList
    * @param products
    */
    public void listTransform(List products){
      ArrayList<SalesVolume> salesVolumes = new ArrayList<SalesVolume>();
      Iterator iterator=products.iterator();
      while(iterator.hasNext()){
        /**
        *先通过迭代器转为object[]数组
        */
        Object[] obj=(Object[]) iterator.next();
        /**
        *再把数组中的元素转为我们需要的类型,通过构造函数构造出我们需要的数据类型,添加到ArrayList中
        */
        int id=Integer.parseInt(obj[0].toString());
        String name=obj[1].toString();
        String picture=obj[2].toString();
        int num=Integer.parseInt(obj[3].toString());
        SalesVolume salesVolume=new SalesVolume(id,name,picture,num);
        salesVolumes.add(salesVolume);
      }
      this.request().setAttribute("salesVolumeList", salesVolumes);
    }
  • 相关阅读:
    第六周作业
    2019第四周作业(基础作业+挑战作业)
    第三周作业
    2019第二周基础作业
    求最大值及下标值
    查找整数
    学期总结
    打印沙漏
    币值转换
    远程连接centos7的mysql5.7+ 更改iptables方法
  • 原文地址:https://www.cnblogs.com/SherryIsMe/p/3487272.html
Copyright © 2011-2022 走看看