今天写了点东西,用到了SQL查询,得到的是list集合,在jsp中用c标签取值,报了[Ljava.lang.Object; cannot be cast to com.plpw.Model.Yetai异常。
后查询资料,对于两者有了些新的认识。
使用HQL进行条件查询时,得到的结果List是对象数组,该对象数组的长度取决于参与查询表的个数。
下面是取数组中对象的值:
List<dept> list = getSession.createQuery("from dept ").list(); //list包含的是对象数组
for(int i = 0 ;i<list.size();i++){ //循环打印对象属性
Object [] obj = (Object[]) list.get(i); //obj中存放的是对象
Dept d = (Dept)obj[0]; //索引位置为0的对象
}
使用SQL进行条件查询得到的List是也是对象数组,只是数组的索引位置从0开始的是对象的第一个属性,该对象数组的长度取决于表中属性的多小。
List<dept> list = getSession.createSQLQuery(select * from dept);
for(int i = 0;i<list.size();i++){
Object [] obj = (Object)list.get(i); //obj 中存放的是对象的属性值
此时想拿obj中的值就简单了,直接循环拿值吧。
}