Hibernate在HQL中查询实例2011-01-20我们学习Hibernate查询是知道HQL支持条件查询,分为好多方面,这里我们就具体Hibernate查询用实例来加以说明,希望对读者的学习带来帮助。1、支持字符串方式参数传递查询:例子:List students = session.createQuery("select s.id,s.name from Student s where s.name like "%1" ").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] o = (Object[])iter.next(); System.out.println(o[0]+","+o[1]); }由于,涉及到多个属性查询,所以返回的是Object数组类型。2、支持类似于PrepareStatement方式的?传递参数查询例子:List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ") .setParameter("goodname", "%1%").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] o = (Object[])iter.next(); System.out.println(o[0]+","+o[1]); }要设置参数从0开始,见第2行。3、去变量方式参数传递例子:List students = session.createQuery("select s.id,s.name from Student s where s.name like :goodname ") .setParameter("goodname", "%1%").list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] o = (Object[])iter.next(); System.out.println(o[0]+","+o[1]); }这个跟2中的相似,只是多了参数可以归为一类。4、支持多参数传递例子:List students = session.createQuery("select s.id, s.name from Student s where s.id in(:myids)") .setParameterList("myids", new Object[]{1, 2, 3, 4, 5,32,13,14}) .list(); for (Iterator iter=students.iterator(); iter.hasNext();) { Object[] o = (Object[])iter.next(); System.out.println(o[0]+","+o[1]); }注意调用方法是setParameterList。