//创建Query对象
Query query=session.createQuery("select Student.sname,Student.sdept from Student");
List list=query.list(); //执行查询
//以下代码显示查询的信息
Iterator it=list.iterator();
while(it.hasNext()){
Object[] stu=(Object[])it.next();
System.out.println("id"+stu[0]);
System.out.println("name"+stu[1]);
System.out.println("\n");
}
单一属性查询
//返回结果集属性列表,元素类型和实体类中相应的属性类型一致
List students = session.createQuery("select name from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
String name = (String)iter.next();
System.out.println(name);
}
多个属性查询
//查询多个属性,其集合元素是对象数组
//数组元素的类型和对应的属性在实体类中的类型一致
//数组的长度取决与select中属性的个数
List students = session.createQuery("select id, name from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
返回Student实体对象
//可以采用hql动态实例化Student对象
//此时list中为Student对象集合
List students = session.createQuery("select new Student(id, name) from Student").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Student student = (Student)iter.next();
System.out.println(student.getId() + "," + student.getName());
}
注意:使用这种方式,Class Student中要有一个此处参数对应的构造函数。即要有Student(id, name)构造函数。
使用别名(as 可有可无)
List students = session.createQuery("select s.id, s.name from Student as s").list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + "," + obj[1]);
}
List students = session.createQuery("from Student").list();
List students = session.createQuery("from Student s").list();
List students = session.createQuery("from Student as s").list();
List students = session.createQuery("select s from Student as s").list();
List students = session.createQuery("select * from Student").list();
更新中