当我执行此查询时,我将结果存储到列表对象
中Query vodquery = session.createQuery(
"select vod.videoid,vod.videotitle,alb.language,alb.genre "+
"from Videos as vod,Album as alb "+
"where vod.videoType =:videotype and vod.albumId=alb.id "+
"group by vod.videoId").setParameter("videotype","MOV");
List<Object> videolist = vodquery.list();
我需要检索每个结果,但是当我使用此代码时
for(int i = 0; i < videolist.size(); i++) {
System.out.println(videolist.get(i));
}
结果是
[Ljava.lang.Object;@b7e548
[Ljava.lang.Object;@12e0986
[Ljava.lang.Object;@1735396
当我使用此代码时
for (int i=0; i<videolist.size(); i++){
Object[] row = (Object[]) videolist.get(i);
System.out.println("Element "+i+Arrays.toString(row));
}
得到了这样的结果
Element 0[VOD1000, sdf, English, Action, null, d, Entertainment, Action, comody, 0, null, null, dddddd]
Element 1[VOD1002, sdf, NONE, NONE]
Element 2[VOD1004, sdf, NONE, NONE]
Element 3[VOD1005, sdf, NONE, NONE]
但我需要从每一行中获取每个值。我怎样才能做到这一点。我需要查看结果中的每个值
答案 0 :(得分:1)
您可以使用两个嵌套循环:
for (Object[] row : videolist){
for(Object value : row) {
// use value here
}
}
答案 1 :(得分:1)
更改循环:
for (int i=0; i < videolist.size(); i++){
Object[] row = (Object[]) videolist.get(i);
for(Object obj : row) {
System.out.println("Element "+ i +obj));
}
}
答案 2 :(得分:0)
也许是这样的:
for (int i=0; i<videolist.size(); i++){
Object[] row = (Object[]) videolist.get(i);
for(Object value : row) {
// use value here
}
}