HQL (一) 简单属性查询

简单属性查询(重要)
* 单一属性查询,返回结果集是属性列表,其元素类型和实体类中相应的属性类型一致
* 多个属性查询,返回的结果集是对象数组,数组的长度和查询的属性的个数一致
  数组元素的类型和查询的属性类型一致
* 如果认为返回的数组不够对象化,可以采用hql动态生成实体对象
参加:SimplePropertyQueryTest.java

Java代码 复制代码 收藏代码
  1. package com.wlh.hibernate;   
  2.   
  3. import java.util.Iterator;   
  4. import java.util.List;   
  5.   
  6. import junit.framework.TestCase;   
  7.   
  8. import org.hibernate.Session;   
  9.   
  10. public class SimplePropertyTest  extends TestCase{   
  11.        
  12.        
  13.     //单个属性查询   
  14.     public void testQuery1(){   
  15.        
  16.         Session session = null;   
  17.     try {   
  18.         session = HibernateUtils.getSession();   
  19.         session.beginTransaction();   
  20.         //单个属性查询,返回结果集属性集合,其元素类型和实体类中相应属性的类型一致   
  21.         List students=session.createQuery("select  name from Student ").list();   
  22.         for(Iterator iter=students.iterator();iter.hasNext();){   
  23.             String name=(String)iter.next();   
  24.             System.out.println("name="+name);   
  25.         }   
  26.         session.getTransaction().commit();   
  27.     }catch(Exception e) {   
  28.         e.printStackTrace();   
  29.         session.getTransaction().rollback();   
  30.     }finally {   
  31.         HibernateUtils.closeSession(session);   
  32.     }   
  33. }   
  34.     //多个属性查询   
  35.     public void testQuery2(){   
  36.            
  37.         Session session = null;   
  38.     try {   
  39.         session = HibernateUtils.getSession();   
  40.         session.beginTransaction();   
  41.         //查询多个属性其集合元素是对象数组l列表。即,多个对象数组的集合   
  42.         //数组元素中的类型与对应的实体类中的属性类型一致   
  43.         //数组的长度取决于查询的属性个数   
  44.         List students=session.createQuery("select  id,name from Student ").list();   
  45.         for(Iterator iter=students.iterator();iter.hasNext();){   
  46.             Object[] o=(Object [])iter.next();   
  47.             System.out.println("id="+o[0]+",name="+o[1]);   
  48.         }   
  49.         session.getTransaction().commit();   
  50.     }catch(Exception e) {   
  51.         e.printStackTrace();   
  52.         session.getTransaction().rollback();   
  53.     }finally {   
  54.         HibernateUtils.closeSession(session);   
  55.     }   
  56. }   
  57.        
  58.     //多个属性查询   
  59.     public void testQuery3(){   
  60.            
  61.         Session session = null;   
  62.     try {   
  63.         session = HibernateUtils.getSession();   
  64.         session.beginTransaction();   
  65.            
  66.         List students=session.createQuery("select new Student(id,name) from Student ").list();   
  67.         for(Iterator iter=students.iterator();iter.hasNext();){   
  68.             Student o=(Student)iter.next();   
  69.             System.out.println("id="+o.getId()+",name="+o.getName());   
  70.         }   
  71.         session.getTransaction().commit();   
  72.     }catch(Exception e) {   
  73.         e.printStackTrace();   
  74.         session.getTransaction().rollback();   
  75.     }finally {   
  76.         HibernateUtils.closeSession(session);   
  77.     }   
  78. }   
  79. }  
posted @ 2011-11-22 11:01  java学弟  阅读(312)  评论(0编辑  收藏  举报