稻草誓言 2012-09-05
String hql="select u.name,u.password from User u"; Query query=session.createQuery(hql); Iterator iter=query.iterator(); while(iter.next()){ Object obj[]=(Object[]iter.next()); System.out.println(obj[0]+obj[1]); }
//需要逐一去访问结果集,非常不方便
Hibernate的HQL语言提供了 动态构造实例对象的方法
String hql="select new User(u.name,u.password) from User u"; Query query=session.createQuery(hql); Iterator iter=query.iterator(); while(iter.next()){ User u=(User)it.next(); System.out.println(u.getName()+u.getPassword()); }
注意:对应实体对象中使用指定属性值的构造函数一定要存在
Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。但是不要被语法结构 上的相似所迷惑,HQL是非常有意识的被设计为完全面向对象的查询,它可以理解如继承、多态 和关联之类的概念。