//测试投影查询
//一.单列投影
@Test
public void testTouYinOfOne(){
//采用自定义工具类 HibernateUtil中的getSession()方法建立会话
Session session = HibernateUtil.getSession();
//创建hql语句(语句中的属性 和类 都是 java实体类中的 属性名和类名--不是数据库中的字段名和表名)
String hql = "select ename from Emp";
Query query = session.createQuery(hql);
//name属性的 类型为String
List<String> elist = query.list();
for (String name : elist) {
System.out.println(name);
}
// 关闭会话
HibernateUtil.closeSession();
}
//二.多列投影(非所有字段)
@Test
public void testTouYingOfMany(){
Session session = HibernateUtil.getSession();
String hql = "select ename ,sal from Emp";
/*ename类型为String,sal类型为double,因此使用Object
使用数组接收数据库中两个字段所有值*/
List<Object[]>olist = session.createQuery(hql).list();
for (Object[] arr : olist) {
//输出数组元素
System.out.println(arr[0]+"\t"+arr[1]);
}
//关闭会话
HibernateUtil.closeSession();
}
图解: