- 1
- 0
- 约7.84千字
- 约 33页
- 2018-03-27 发布于江西
- 举报
用Hibernate检索数据.ppt
第14章 用Hibernate检索数据 如果不知道所要寻找的对象的持久化标识,那么就无法通过load()或get()函数来获取持久化对象,这里就需要使用查询。Hibernate支持强大且易于使用的面向对象查询语言(HQL)。如果希望通过编程的方式创建查询,Hibernate提供了完善的按条件(Query By Criteria, QBC)以及按样例(Query By Example, QBE)进行查询的功能。也可以用本地SQL(native SQL)描述查询,Hibernate额外提供了将结果集(result set)转化为对象的支持。本章将详细介绍在Hibernate中如何查询数据 14.1 查询基础 序言中提到的几种查询方式虽然方法各有不同,但基本的操作顺序都是一样的,都需要准备查询条件、执行查询操作、处理查询结果。不同的方法需要选择不同的工具类,在个别情况下也可以混用。 14.1.1 执行查询 HQL和本地SQL(native SQL)查询要通过为org.hibernate.Query的实例来表达。这个接口提供了参数绑定、结果集处理以及运行实际查询的方法。总是可以通过当前Session获取一个Query对象,如代码14-1所示,列出了几种使用Quey来执行查询的例子: 这里提前介绍一下什么是HQL?HQL是HibernateQuery Language的缩写,HQL的语法很像SQL的语法,但HQL是一种面向对象的查询语言。因此,SQL的操作对象是数据表和列等数据对象,而HQL的操作对象是类、实例、属性等。下一节将详细介绍它。 14.1.2 用iterate()方法迭代查询结果 在某些情况下,可以使用iterate()方法得到更好的性能。这通常是预期返回的结果在session,或二级缓存(second-level cache)中已经存在时的情况。如若不然,iterate()会比list()慢,而且可能简单查询也需要进行多次数据库访问:iterate()会首先使用1条语句得到所有对象的持久化标识(identifiers),再根据持久化标识执行多条附加的select语句实例化实际的对象。 14.1.3 指定绑定参数 除了JDBC风格的问号(?)接收参数外,接口Query还提供了一种对命名参数(named parameters)参数进行绑定的方法。命名参数(named parameters)在查询字符串中是形如:name的标识符。如果按JDBC绑定参数,Hibernate对参数从0开始计数。 如代码14-3所示,给出了按顺序绑定参数和按名称绑定参数的例子。两者方法相同都是setString()或setInterger(),但方法的第一个参数不同,一个是整数表示顺序,另一个是String类型表示名称。 14.1.4 用Hibernate简单分页 如果需要指定结果集的范围(希望返回的最大行数/或开始的行数),应该使用Query接口提供的方法: Query q = sess.createQuery(from DomesticPerson person); q.setFirstResult(20); q.setMaxResults(10); List persons = q.list(); 14.1.5 可滚动遍历(Scrollable iteration) 如果当前使用JDBC驱动支持可滚动的结果集(JDBC2.0后一般的主流数据库驱动都支持可滚动结果集),Query接口还可以使用ScrollableResults,允许用户在查询结果中上下移动游标, 注意:使用此功能需要保持数据库连接(以及游标(cursor))处于一直打开状态。如果需要断开连接使用分页功能,请使用setMaxResult()/setFirstResult()。 14.2 HQL语句详解 HQL的概念在本章的一开始就做过介绍,它是Hibernate专用的查询语言,语法与SQL类似,但操作的目标是对象。HQL 是完全面向对象的查询语言,因此可以支持继承和多态等特征。 14.2.1 HQL基础 HQL 查询依赖于Query类,每个Query 实例对应一个查询对象。使用HQL 查询可按如下步骤进行: (1)获取HibernateSession对象; (2)编写HQL语句; (3)以HQL语句作为参数,调用Session的createQuery方法创建查询对象; (4)如果HQL语句包含参数,调用Query 的setXxx方法为参数赋值; (5)调用Query对象的list等方法遍历查询结果。 14.2.2 用from子句指定数据表 from子句是最简单的HQL语句,也是最基本的HQL语句。from关键字后紧跟持久化类的类名。例如: from Perso
您可能关注的文档
- 【绝对精美01】木材加工及木、竹、藤、棕、草制品业企业培训会议演讲项目总结项目计划.ppt
- 07.边缘腐蚀用主要设备和操作规程.ppt
- 苏教版必修一专题三第三单元含硅矿物与信息材料全单元课件1.ppt
- 清砂整理培训资料.ppt
- 第10讲 操作系统.ppt
- 七年级第二学期期末复习指导.ppt
- 004Java基础.ppt
- 高等大气物理:第十章 波在湍流大气中的传输.ppt
- ppt9网卡.ppt
- 南北各异的自然环境.ppt
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 四川省2025年中考数学真题试卷十五套附答案.pdf VIP
- 《数据库原理与应用》课程标准.pdf VIP
- 本科论文毕设-基于JAVA酒店管理系统毕业设计论文.doc VIP
- 2025年德州职业技术学院单招笔试数学试题库含答案解析.docx VIP
- 氟化物微纳复合玻璃与透明陶瓷:设计原理、制备工艺与性能研究.docx VIP
- 2025海上风电系统智能运维的数字孪生技术(英文).pdf VIP
- 2025年德州职业技术学院单招《数学》真题(重点)附答案详解.docx VIP
- 牵引供电变电所-分区所-AT所.pdf VIP
- 投标产品质量、供货、售后服务、残次品退换承诺方案.docx VIP
- 子宫肌瘤的诊治中国专家共识解读.docx VIP
原创力文档

文档评论(0)