当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
JAVA基础:Hibernate数据查询(1)
发布时间:2012/4/28 16:24:23 来源:城市网学院 编辑:ziteng
  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[0]+"  的性别是:"+obj[1]);
  }
  }
  在使用属性查询时,由于使用对象数组,操作和理解不太方便,如果将 一个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());
  }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved