SQLName=
"select a.*,b.gender,b.birthday,b.national,b.marital_status,b.education,b.address,b.email,b.contact,b.occupation,b.vis it_demand,b.customer_notes
from Subscriberinfo a,Customers b
where a.subscriberid=b.subscriberid(+)";List subscriberinfoList=session.createSQLQuery(SQLName).list();subscriberinfoList.size和我预期的完全吻合,证明数据已经被读到了subscriberinfoList里求教各位,怎样能把subscriberinfoList的数据取出来
"select a.*,b.gender,b.birthday,b.national,b.marital_status,b.education,b.address,b.email,b.contact,b.occupation,b.vis it_demand,b.customer_notes
from Subscriberinfo a,Customers b
where a.subscriberid=b.subscriberid(+)";List subscriberinfoList=session.createSQLQuery(SQLName).list();subscriberinfoList.size和我预期的完全吻合,证明数据已经被读到了subscriberinfoList里求教各位,怎样能把subscriberinfoList的数据取出来
Iterator it=list.iterator();
while(it.hasNext()){
Object[] obj=(Object[])it.next();
System.out.println(obj[0]);
System.out.println(obj[1]);
System.out.println(obj[2]);
.....
}
其实我也不反对HIBERNATE返回个ResultSet 无论如何都封装一下怪难受的如果可以的话LZ也可以创建完毕后给他指定一个实体
我感觉用SQL语句进行联合查询,查出来的数据列表,无法直接赋给一个bean,我现在处于扫盲阶段,如果有说的不对的还请多多指教。
System.out.println(obj[0]);
System.out.println(obj[1]);
System.out.println(obj[2]);
} list直接循环就可以,不必迭代。
由于我现在在用公司提供的方法 所以我没有办法去实验一些东西 你要有条件的话可以实验下增加的实体必须是Hibernate的PO么? 可以不可以是随便建立的一个JAVABEAN?其实指定SQLQuery的实体没啥意思 有些时候活用join语句 利用实体构造器才是最好玩的方式
XXXBean bean=new XXXBean();
List<Object[]> list=session.createXXXX.list();
if(list!=null&&!list.isEmpty()){
for(Object []params:list){
if(params.length>=3){
bean.setXXX=(String)params[0];
bean.setXXX=(Intger)params[1];
bean.setXXX=(Date)params[2];
}
}
}
List subscriberinfoList=session.createSQLQuery(SQLName).list();
for(Object[] objs:subscriberinfoList)
{
system.out.println(objs[0]);
system.out.println(objs[1]);
system.out.println(objs[2]);
}