- 1
- 0
- 约1.17万字
- 约 9页
- 2018-10-27 发布于山东
- 举报
Query接口及HQL查询语言的使用.docx
在我们使用load,get等方法时候,只能根据主键来加载,那么有其它更高要求的时候就不行了,所以我们可以使用Query,
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
Query query = session.createQuery(from User); //这里的User就是类,这种查询语句叫作hql查询语句
query.setFirstResult(2); //从第二条记录开始
query.setMaxResults(2); //查询2条记录
List userList = query.list();
for (Iterator iter=userList.iterator(); iter.hasNext();) {
User user = (User)iter.next();
System.out.println(user.getId());
System.out.println(user.getName());
}
session.getTransaction().commit();
}catch(Exception e) {
e.printStackTrace();
session.getTransaction().rollback();
}finally {
HibernateUtils.closeSession(session);
}
注意我们在使用session的get方法得到单个实例的时候经常是这样:
client = (Client)session.get(Client.class, new Integer(id));
后面一定是对象,不能直接传id,要不然MyEclipse就会出现问题,但是这个好像在不同版本下是不一样的,有的版本下不会出现问题,会自动转换。
HQL查询语言:
一、简单属性查询:
1、单一属性查询:
//返回结果集属性列表,元素类型和实体类中相应的属性类型一致
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);
}
2、多个属性查询:
//查询多个属性,其集合元素是对象数组
//数组元素的类型和对应的属性在实体类中的类型一致
//数组的长度取决与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]);
}
3、返回实体对象:(注意实体类要有相应构造方法)
//如果认为返回数组不够对象化,可以采用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());
}
4、使用别名查询:
List students = session.createQuery(select s.id, from Student s).list();
for (Iterator iter=students.iterator(); iter.hasNext();) {
Object[] obj = (Object[])iter.next();
System.out.println(obj[0] + , + obj[1]);
}
5、使用带as的别名查询:
List students = session.createQuery(select s.id, fro
您可能关注的文档
最近下载
- 2025年辅警招聘笔试考试题库及答案.docx VIP
- 美国国立卫生研究院卒中量表(NIHSS).pdf VIP
- 2026年时事政治测试题库含完整答案【网校专用】.docx VIP
- ansys经典激光打孔仿真-APDL命令流.pdf VIP
- HG∕T 5960-2021 废(污)水处理用复合碳源.pdf
- 夫妻自愿离婚协议书 离婚协议书 离婚协议书双方自愿离婚协议书.docx VIP
- 公园绿化养护服务服务整体设想及策划.doc VIP
- 张显颖-中级安全工程师-安全生产技术基础-系统精讲-第5章-(1)危险化学品安全的基础知识1.pdf VIP
- 特种设备相关法律法规重点内容宣贯、埋地钢质管道防腐保温层技术标准考试.docx VIP
- 中考英语核心2500词Day38音标版.pdf VIP
原创力文档

文档评论(0)