Query  query=session.createSQLQuery("select count(*), sum(age)from stu  ");  List list=new ArrayList();
  list=query.list();
for (Iterator iterator = list.iterator(); iterator.hasNext();) { Object[] object = (Object[]) iterator.next();
System.out.println(object[0]+"  "+object[1]);
}
请问这样获取2个函数的值有什么不对吗?为什么得到的是2个重复的值,坐等高人指点!

解决方案 »

  1.   

    我把你的代码考下来测试了一下,你那个迭代遍历
    for (Iterator iterator = list.iterator(); iterator.hasNext();) {
    好像有点问题吧Iterator iterator=list.iterator();
    while(iterator.hasNext()){
    //System.out.println(iterator.next());
    Object[] object =(Object[]) iterator.next();
    System.out.println(object[0]+"  "+object[1]+" "+object[2]);
    }下面是结果
    10  lei yunnan
    2  liu shandong
      

  2.   

    我用了你的迭代,结果一样,咱俩的迭代其实是一样的,请你查询俩个返回int或float的函数,你确定是按我的查询测试的吗?究竟为什么
      

  3.   

    经过不断测试,问题终于解决了,原因是在查询的时候没有给查询的函数对应字段。所以list只能存储第一个值,select count(*), sum(age)from stu 改成 select select count(*) as 统计, sum(age) as 总和from stu就可以了,谢谢大家!