Hibernate HQL示例三:属性查询
根据属性查询:
单个属性查询,返回的结果集属性的列表,其元素和属性的类型一致 多个属性查询,返回的结果集是数组类型,数组的长度和查询的属性数量相关,数组中元素的类型与相应的属性类型相同
?
示例
package com.bjsxt.hibernate;import java.util.Iterator;import java.util.List;import org.hibernate.Session;import junit.framework.TestCase;/** * 简单的属性查询 * @author Administrator * */public class SimplePropertyQueryTest extends TestCase {/** * 单一属性查询 * */public void testQuery1() {Session session = null;try {session = HibernateUtils.getSession();List students = session.createQuery("select name from Student").list();for (Iterator iter = students.iterator();iter.hasNext();) {String name = (String)iter.next();System.out.println(name);}}catch(Exception e) {e.printStackTrace();}finally {HibernateUtils.closeSession(session);}}/** * 多个属性的查询 * */public void testQuery2() {Session session = null;try {session = HibernateUtils.getSession();//查询多个属性,其集合元素是对象数组//数组元素的类型,跟实体类的属性的类型相关List students = session.createQuery("select id, name from Student").list();for (Iterator iter = students.iterator();iter.hasNext();) {Object[] obj = (Object[])iter.next();System.out.println(obj[0] + ", " + obj[1]);}}catch(Exception e) {e.printStackTrace();}finally {HibernateUtils.closeSession(session);}}public void testQuery3() {Session session = null;try {session = HibernateUtils.getSession();//查询多个属性,其集合元素是对象数组//数组元素的类型,跟实体类的属性的类型相关//更参见的用法,给对象起个别名,然后通过别名来引用属性值List students = session.createQuery("select s.id, s.name from Student s").list();for (Iterator iter = students.iterator();iter.hasNext();) {Object[] obj = (Object[])iter.next();System.out.println(obj[0] + ", " + obj[1]);}}catch(Exception e) {e.printStackTrace();}finally {HibernateUtils.closeSession(session);}}}?