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

java认证辅导之Hibernate数据查询

 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()
  {
  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数据查询