JAVA基础:Hibernate数据查询(1)
Hibernate Query Language(HQL) Criteria QueryNative 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()
{
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]