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个重复的值,坐等高人指点!
------解决方案--------------------
我把你的代码考下来测试了一下,你那个迭代遍历
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
------解决方案--------------------
我用了你的迭代,结果一样,咱俩的迭代其实是一样的,请你查询俩个返回int或float的函数,你确定是按我的查询测试的吗?究竟为什么
------解决方案--------------------
可能这俩值获取到的时候就是一样的饿
------解决方案--------------------
经过不断测试,问题终于解决了,原因是在查询的时候没有给查询的函数对应字段。所以list只能存储第一个值,
select count(*), sum(age)from stu 改成 select select count(*) as 统计, sum(age) as 总和from stu
就可以了,谢谢大家!