会计考友 发表于 2012-8-4 12:37:27

JAVA基础:Hibernate数据查询(1)

Hibernate Query Language(HQL)   Criteria Query
  Native SQL
  下面对其分别进行解释
  Hibernate Query Language:
  HQL提供了是十分强大的功能,它是针对持久化对象,用取得对象,而不进行update,delete和insert等操作。而且HQL是面向对象的,具备继承,多态和关联等特性。
  from子句:
  from子句是最简单的HQL,例如from Student,也可以写成 select s from Student s。它简单的返回Student类的所有实例。
  值得注意的是除了JAVA类和属性的名称外,HQL语句对大小写不敏感。
  select子句:
  有时并不需要取得对象的所有属性,这时可以使用select子句进行属性查询,如select s.name from Student s。
  例: public void HQLselectDEMO()
  {
  TRegister user = new TRegister();
  Session session = HibernateUtil.currentSession();
  Query query = session.createQuery("select u.userName from TRegister u");
  List list = query.list();
  for(int i = 0 ; i < list.size(); i++)
  {
  String name = (String)list.get(i);
  System.out.println(name);
  }
  }如果要查询两个以上的属性桧以数组的方式返回,如下: public void HQLselectDEMO()

  {

会计考友 发表于 2012-8-4 12:37:28

JAVA基础:Hibernate数据查询(1)

</p>  TRegister user = new TRegister();
  Session session = HibernateUtil.currentSession();
  Query query = session.createQuery("select u.userName ,u.sex from TRegister u");
  List list = query.list();
  for(int i = 0 ; i < list.size(); i++)
  {
  Object obj[] = (Object[])list.get(i);
  System.out.println(obj+"  的性别是:"+obj);
  }
  }
  在使用属性查询时,由于使用对象数组,操作和理解不太方便,如果将 一个object[]中所有成员封装成一个对象就方便多了。下面的程序做了示例: public void HQLselectDEMO()
  {
  Session session = HibernateUtil.currentSession();
  Query query = session.createQuery("select new TRegister(u.userName,u.sex) from TRegister u");
  List list = query.list();
  for(int i = 0 ; i < list.size(); i++)
  {
  //Object obj[] = (Object[])list.get(i);
  TRegister user = (TRegister)list.get(i);
  System.out.println(user.getUserName()+"  的性别是:"+user.getSex());
  }
页: [1]
查看完整版本: JAVA基础:Hibernate数据查询(1)