本文主要是介绍hibernate之sql与hql的连表查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、众所周知,hibernate支持sql语句查询,大大增加了便利性,对于广大习惯sql语句的同志来说,是件不错的选择。当使用sql连表查询时,需要如下写法:
s=sessionFactory.getCurrentSession();
SQLQuery q=s.createSQLQuery(sql);
q.addEntity(class1).addEntity(class2);
查询出来的结果为对象数组集合,但是,这样添加类名难免麻烦。
二、而hibernate本身的hql语句连表查询出来的结果也为对象数组集合,也就是说,集合的每个元素,都是对象的数组!查询代码如下:
s=sessionFactory.getCurrentSession();
Query query = s.createQuery(hql);
list = query.list();
当然,以上代码不是完整的,请自行添加完整。
如何遍历呢?
1)在bean中遍历,我们可以这样(比如取出结果中第一条数据的对象数组):
Object obj[]=(Object[]) list.get(0);//这样就可以针对每一个对象进行操作了
2)在jsp中遍历,我们可以这样:
<c:forEach var="user" items="${list }">
${userInfo[0].name}
</c:forEach>
这篇关于hibernate之sql与hql的连表查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!