- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hibernate中的几个重要方法以及调用hibernate中的几个重要方法以及调用
Hibernate查询?首先介绍get()和load()方法的区别:?get()方法和load()方法的区别主要在于对二级缓存的使用上。?load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。?get():如果在数据库中没有记录会返回空,get()无论如何都会返回数据.?
load():如果数据库中没有记录会抛出异常,如果有数据返回的是一个代理对象。?
get()方法默认不支持lazy(延迟加载)功能,而load支持延迟加载get()方法在查询不到数据时,返回null,而load因为支持延迟加载,只有在使用对象时才加载,所以如果数据库中不在数据load会抛出异常(org.hibernate.ObjectNotFoundException)。get()和load()只根据主键查询,不能根据其它字段查询,如果想根据非主键查询,可以使用HQL
list和iterator()方法之间的区别:(N+1?)?list()方法在执行时,直接运行查询结果所需要的查询语句。?iterator()方法则是先执行得到对象ID的查询,然后在根据每个ID值去取得所要查询的对象。?因此:对于list()方式的查询通常只会执行一个SQL语句,而对于iterator()方法的查询则可能需要执行N+1条SQL语句(N为结果集中的记录数).?结果集的处理方法不同:?list()方法会一次活的所有的结果集对象,而且他会依据查询的结果初始化所有的结果集对象。如果在结果集非常庞大的时候会占据非常多的内存,甚至会造成内存溢出的情况发生。?iterator()方法在执行时不会一次初始化所有的对象,而是根据对结果集的访问情况来初始化对象。一次在访问中可以控制缓存中对象的数量,以避免占用过多的缓存,导致内存溢出情况的发生。?HQL:HQL是一种面向对象的查询语言,HQL的操作对象是类、实例和属性等。?SQL:sql的操作对象是数据表和列等数据对象。?Hql是完全面向对象的查询语言,因此可以支持继承和多条等特征。?HQL查询依赖于Query类,每个Query实例对应一个查询对象。?定参数的功能,Query 接口才是真正的HQL查询接口。?//创建一个Query 对象?
Java代码??
Query?query?=?session.createQuery?(from?Customer?as?c?where?=:customerName?and?c.age=:customerAge);??
//动态绑定参数?
Java代码??
query.setString(customerName,Tom);??
query.setInteger(customerAge,21);??
//执行查询语句,返回结果?
Java代码??
List?result?=?query.list();??
HQL查询步骤:?1:获取Hibernate Session对象。?2:编写HQL语句。?3:以HQL语句作为参数,调用Session的createQuery方法创建查询对象。?4:如果HQL语句包含参数,调用Query的setXXX()方法为参数赋值。?5: 调用Query对象的list等方法遍历查询结果。?Query还包含两个方法:?
Java代码??
setFirstResult(int?firstResult)://设置返回的结果集从第几条记录开始。??
setMaxResults(int?maxResults)://设置本次查询返回的结果数。??
实体的删除和更新。?投影查询:只查询属性的一部分。??? 查询一个属性返回的是字符串??? 查询二个字段返回的是数组?动态构造查询:主要用于几十个表查询;??????? 要构建一个新的对象,要加上一个构造函数;?? 在new对象的时候要加上包名?不要使用count(*) 要count(持久化对象)?分组与排序:?Order by子句可以通过asc或desc关键字排序????? 如:?
Java代码??
form?User?u?Order?by??asc,u.age?desc;??
Group by子句与统计查询:?如:?
Java代码??
String?hql?=?select?count(u),u.age?from?User?u?group?by?u.age?having?count(u)10;??
?List?list?=?session.createQuery(hql).list();??
标准的SQL聚合函数都可以在HQL语句中使用,比如:count(),sum(),max(),min(),age()等?连接查询
您可能关注的文档
- E27系列是我公司设计生产的一款433MHz射频模块,小体积贴片型,最大功率20dBm。模块自带高性能,弹簧天线E27系列是我公司设计生产的一款433MHz射频模块,小体积贴片型,最大功率20dBm。模块自带高性能,弹簧天线.pdf
- E5会展管理本科人才培养模式研究 需要改E5会展管理本科人才培养模式研究 需要改.doc
- E3207提升设计(定稿)E3207提升设计(定稿).doc
- D、DF、DY型卧式多级离心泵说明书D、DF、DY型卧式多级离心泵说明书.pdf
- E62-DTU-100是“点对点”传输的全双工无线数传模块,发射功率100mW,透明传输方式,工作在425~450MHz频段E62-DTU-100是“点对点”传输的全双工无线数传模块,发射功率100mW,透明传输方式,工作在425~450MHz频段.pdf
- Earth_Science练习题Earth_Science练习题.doc
- EasyHadoop第六次分享-Hadoop小文件问题解决分享(蓝汛张月)EasyHadoop第六次分享-Hadoop小文件问题解决分享(蓝汛张月).pdf
- EasyAR使用必读EasyAR使用必读.pdf
- EBS总账之日记账EBS总账之日记账.ppt
- EC 食品接触法规EC 食品接触法规.pdf
最近下载
- 2024年秋人教版七年级英语上册全册课件:Unit 5.pptx VIP
- HIOKI日置 RM3545电阻计使用说明书.pdf
- 洛阳市20 15届高三一练理科a卷成绩yiqi.xls
- 2024年秋人教版七年级英语上册全册课件:Unit 4.pptx VIP
- 2024全国中考语文试题分类汇编:记叙文阅读.pdf VIP
- 2024新人教版初中七年级数学上册第六章几何图形初步大单元整体教学设计.docx
- 【美术课件】《水果皇后—山竹》(1).pptx
- Unit 1 You and Me (第1课时) Section A 1a-1d 课件 人教版(2024)七年级上册.pptx
- Unit 1 You and Me Section A How do you greet people 课件 人教版(2024)英语七年级上册.ppt
- 机械结算单模板.docx
文档评论(0)