网站大量收购独家精品文档,联系QQ:2885784924

06Hibernate检索对象方式.pptVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
06Hibernate检索对象方式

Hibernate检索对象的方式 教学内容 HQL检索方式 QBC检索方式 本地SQL检索方式 Hibernate提供的检索对象的方式 导航对象图检索方式 根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,Hibernate会从数据库中加载关联的Order对象,否则就从缓存中取得Order对象。 OID检索方式 按照对象的OID来检索对象。Session的get()和load()方法提供了这种功能。如果在应用程序中事先知道了OID,就可以使用这种检索对象的方式。 HQL检索方式 使用面向对象的HQL查询语言。Session的find()方法用于执行HQL查询语句。此外,Hibernate还提供了Query接口,它是Hibernate提供的专门的HQL查询接口,能够执行各种复杂的HQL查询语句。本章有时把HQL检索方式简称为HQL。 QBC检索方式 使用QBC(Query By Criteria)API来检索对象。这种API封装了基于字符串形式的查询语句,提供了更加面向对象的接口。本章有时把QBC检索方式简称为QBC。 本地SQL检索方式 使用本地数据库的SQL查询语句。Hibernate会负责把检索到的JDBC ResultSet结果集映射为持久化对象图。 HQL检索方式 HQL(Hibernate Query Language)是面向对象的查询语言,它和SQL查询语言有些相似。在Hibernate提供的各种检索方式中,HQL是使用最广的一种检索方式。它具有以下功能: 在查询语句中设定各种查询条件 支持投影查询,即仅检索出对象的部分属性 支持分页查询 支持连接查询 支持分组查询,允许使用having和group by关键字 提供内置聚集函数,如sum()、min()和max() 能够调用用户定义的SQL函数 支持子查询,即嵌入式查询 支持动态绑定参数 Session的find()方法以及Query接口 Session类的find()方法以及Query接口都支持HQL检索方式。 这两者的区别在于,前者只是执行一些简单HQL查询语句的便捷方法,它不具有动态绑定参数的功能,而且在Hibernate3.x版本中,已经淘汰了find()方法;而Query接口才是真正的HQL查询接口,它提供了以上列出的各种查询功能。 HQL检索步骤 //创建一个Query对象 Query query=session.createQuery(from Customer as c where + c.name=:customerName +and c.age=:customerAge); //动态绑定参数 query.setString(customerName,Tom); query.setInteger(customerAge,21); //执行查询语句,返回查询结果 List result= query.list(); HQL检索步骤 (1)通过Session的createQuery()方法创建一个Query对象,它包含一个HQL查询语句。HQL查询语句可以包含命名参数,如“customerName”和“customerAge”都是命名参数。 (2)动态绑定参数。Query接口提供了给各种类型的命名参数赋值的方法,例如setString()方法用于为字符串类型的customerName命名参数赋值。 (3)调用Query的list()方法执行查询语句。该方法返回List类型的查询结果,在List集合中存放了符合查询条件的持久化对象。 方法链编程风格 List result=session.createQuery(……) .setString(customerName,Tom) .setInteger(customerAge,21) .list(); 方法链编程风格能使程序代码更加简洁。 QBC检索方式 采用HQL检索方式时,在应用程序中需要定义基于字符串形式的HQL查询语句。 QBC API 提供了检索对象的另一种方式,它主要由Criteria接口、Criterion接口和Expression类组成,它支持在运行时动态生成查询语句。 QBC检索方式 //创建一个Criteria对象 Criteria criteria=session.createCriteria(Customer.class); //设定查询条件,然后把查询条件加入到Criteria中 Criterion criterion1= Expression.like(na

文档评论(0)

shaoye348 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档