hibernate Hql 查询语句 请教

please_call_me_J 2010-07-18 05:09:12
先上代码~



public [  xxxxxxxx  ] Display(){
List< xxxxxxx > result=null;
try {
Session session=HibernateUtil.getSessionFactory().openSession();
Query q=session.createQuery("select c.title , count(c.title) from Teacher c group by c.title");
result=q.list();

} catch (HibernateException e) {

e.printStackTrace();
}
return result;
}



我的问题是:

1.中间我用xxxxx标的地方应该是什么类型,因为我要把该结果返回到main方法,然后输出,所以返回后我在main方法又用什么语句来遍历结果。用什么遍历结果?ListIterator?

用ListIterator的话又怎么写遍历代码?
...全文
64 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dr_lou 2010-07-18
  • 打赏
  • 举报
回复
package com.xuz.csdn.june17;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {

public static void main(String[] args) {
ListTest test = new ListTest();
test.printList(test.makeList().iterator());
}

private List<Object> makeList(){
List<Object> list = new ArrayList<Object>();
list.add(1);
list.add("A");

return list;
}

private void printList(Iterator<Object> iterator){
while (iterator.hasNext()) {
Object object = (Object) iterator.next();
System.out.println(object);
}
}
}
please_call_me_J 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sunyouhao 的回复:]
引用 4 楼 juyangjia 的回复:
引用 3 楼 sunyouhao 的回复:
直接返回 List,
main函数里得到元素时用 Object[] o;
(String)o[0] 是你第一个值 c.title
(Integer)o[1] 是你第二个值 count(c.title)


大哥~~(String)o[0]只能装一个值吗?返回的是统计哟~~~~统计每个职称的人数。……
[/Quote]

错误
cannot convert from object to object[]
sunyouhao 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 juyangjia 的回复:]
引用 3 楼 sunyouhao 的回复:
直接返回 List,
main函数里得到元素时用 Object[] o;
(String)o[0] 是你第一个值 c.title
(Integer)o[1] 是你第二个值 count(c.title)


大哥~~(String)o[0]只能装一个值吗?返回的是统计哟~~~~统计每个职称的人数。
[/Quote]
说的还不清楚吗?
你的 list里每个元素都是一个 对象数组 j,
for 循环你的list,然后 Object [] o = list.get(i);
String tTitle = (String)o[0];
int tCount = ((Integer)o[1]).parseInt();
please_call_me_J 2010-07-18
  • 打赏
  • 举报
回复
用Object[]的数组返回多个对象和/或多个属性

资料上说用这个方法。但我不知道怎么写啊,我才学hibernate3天
please_call_me_J 2010-07-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunyouhao 的回复:]
直接返回 List,
main函数里得到元素时用 Object[] o;
(String)o[0] 是你第一个值 c.title
(Integer)o[1] 是你第二个值 count(c.title)
[/Quote]

大哥~~(String)o[0]只能装一个值吗?返回的是统计哟~~~~统计每个职称的人数。
sunyouhao 2010-07-18
  • 打赏
  • 举报
回复
直接返回 List,
main函数里得到元素时用 Object[] o;
(String)o[0] 是你第一个值 c.title
(Integer)o[1] 是你第二个值 count(c.title)
please_call_me_J 2010-07-18
  • 打赏
  • 举报
回复
那个for(Iterator<......=list.iter......)
这句里面这个list下面红线,提示是:list cannot be resolved
duqiangcise 2010-07-18
  • 打赏
  • 举报
回复
public List lay(){
List result=null;
try {
Session session=HibernateUtil.getSessionFactory().openSession();
Query q=session.createQuery("select c.title , count(c.title) from Teacher c group by c.title");
result=q.list();

} catch (HibernateException e) {

e.printStackTrace();
}
return result;
}

你可以不使用泛型赛。直接写出List就可以了或List<Object>,
遍列方式:
for(Iterator<Object> iter = list.iterator();iter.hasNext();){
System.out.println(iter.next());
}

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧