Hibernate 中 HQL查询 和SQL查询的区别

      今天写了点东西,用到了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中的值就简单了,直接循环拿值吧。

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值