1 hql查询
Hibernate的查询语句,hiberante提供的面向对象的查询语言,和sql语句的语法的相似.而且严格区分大小写。
1.1 from字句
/**
* hql: from 字句
* ***/
@Test
public void testFromHql()
{
//获得Session对象
Session session=sf.openSession();
String hql="from Dept";
//获得部门对象的集合
List<Dept> dlist = session.createQuery(hql).list();
for(Dept d:dlist){
System.out.println(d.getDname());
}
//释放资源
session.close();
}
语法:from 类名
1 from 类名
返回值就是该类对应的对象的集合
2 关联查询
From 类名1,…类名N 返回值为Object类的数组的集合
Object类型数组中元素为:类名1 ….类名N对应的对象
1.2 select字句
select:后指定一个属性
Select:后指定两个属性
/**
* hql: select 字句
* select查询获得不是某个pojo类的对象集合
* ***/
@Test
public void testSelectHql()
{
//获得Session对象
Session session=sf.openSession();
//select:后面指定一个属性
/*String hql="select dname from Dept";
//获得指定属性类型对应的集合
List<String> dlist = session.createQuery(hql).list();
for(String d:dlist){
System.out.println(d);
}*/
//select:后面指定多个属性
String hql="select did,dname from Dept";
//获得Object类型数组的集合
List<Object[]> dlist = session.createQuery(hql).list();
for(Object[] d:dlist)
{
System.out.println(d[0]+"\t"+d[1]);
}
//释放资源
session.close();
}
Select返回值三种情况
1 select 指定一个属性
返回值为属性对应的类型的集合
2 select指定n个属性
返回值为Object[]数组的集合,数组中元素为指定属性对应的值
3 select获得结果为单行单列
直接返回Object类型的对象