![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
文章平均质量分 93
liliugen
这个作者很懒,什么都没留下…
展开
-
hibernate知识小结
1.hibernate中java对象的三种状态,三种状态都是对缓存而言的。 1)临时状态 New,delete() 不在session的缓存中,数据库中无对应的数据。 2)持久化状态 Save() 临时->持久 load(),get() 返回持久 update(),saveOrUpdate(),lock() 游离->持久 在session的缓存中,数据库中有对应...原创 2008-11-04 10:00:28 · 70 阅读 · 0 评论 -
在Hibernate中获取数据方式与缓存使用
Hibernate获取数据的方式有不同的几种,其与缓存结合使用的效果也不尽相同,而Hibernate中具体怎么使用缓存其实是我们很关心的一个问题,直接涉及到性能方面。 缓存在Hibernate中主要有三个方面:一级缓存、二级缓存和查询缓存;一级缓存在Hibernate中对应的即为session范围的缓存,也就是当session关闭时缓存即被清除,一级缓存在Hibernate中是不可配置的部分...原创 2008-11-13 11:23:41 · 169 阅读 · 0 评论 -
hibernate 3中的缓存小结
2.2. 一级缓存的管理: 当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级缓存中。当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库...原创 2008-11-11 13:29:33 · 75 阅读 · 0 评论 -
Hibernate性能优化( 四)
在处理大数据量时,会有大量的数据缓冲保存在 Session 的一级缓存中,这缓存大太时会严重显示性能,所以在使用 Hibernate 处理大数据量的,可以使用 session.clear() 或者 session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。 2) 对大数据量查询时,慎用 list() 或者 iterator() 返回查询结果, 1. 使用 Li...原创 2008-11-07 09:23:29 · 65 阅读 · 0 评论 -
Hibernate性能优化( 三)
作者:Robbin Fan一。 inverse = ? inverse=false(default) 用于单向one-to-many关联 parent.getChildren().add(child) // insert child parent.get...原创 2008-11-07 09:17:54 · 92 阅读 · 0 评论 -
Hibernate性能优化(二)
本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。 初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。 大体上,对于HIBERNATE性能调优的主要考虑点如下: ? 数据库设计调整 ...原创 2008-11-06 17:34:35 · 69 阅读 · 0 评论 -
Hibernate性能优化(一)
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行非常轻量级的封装,使得JAVA 程序员可以随心所欲地使用对象编程思维来操作数据库。 Hibernate性能优化 第一,尽量降低访问数据库的次数 Cache:hibernate中有两次缓存,一级位于Session部分是必需的,第二级位于 SessionFactory的外置缓存(SessionFactory缓存分两类,内置缓...原创 2008-11-06 13:38:44 · 76 阅读 · 0 评论 -
Hibernate commit() 和flush() 的区别
Hibernate commit() 和flush() 的区别 孙卫琴<<精通Hibernate java对象持久化技术详解>>p177 说,flush()方法进行清理缓存的操作,执行一系列的SQL语句,但不会提交事务;commit()方法会先调用flush()方法,然后提交事务. 提交事务意味着对数据库所做的更新会永久保持下来 p148 所谓清理,是指Hibernate ...原创 2008-11-06 10:28:24 · 460 阅读 · 0 评论 -
在Hibernate中处理批量更新和批量删除
在Hibernate中处理批量更新和批量删除 发布时间:2007.08.03 06:06 来源:赛迪网 作者:dxaw 批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段: tx = session.beginTransaction(); Iterat...原创 2008-11-05 17:42:37 · 84 阅读 · 0 评论 -
主题:inverse
前不久在搭建系统框架的时候遇到one-many与many-one的关系中一个比较麻烦的问题,就是inverse的设置,看到在这里也有许多人提出这个问题,也有许多解决方法,自己总结总结以后作为资料库吧。1.现在假设有两个类Customer与Order,一个Customer可以有多个Order 2.如果在Customer.hbm.xml中设置inverse=投入额,那么代表customer与order...原创 2008-11-05 09:33:40 · 101 阅读 · 0 评论 -
hibernate------HQL总结
以以个普通Users表为例: 建表语句: Java代码 CREATE DATABASE `interceptor` CHARACTER SET 'utf8'; USE `interceptor`; DROP TABLE IF EXISTS `users`; create table users( id int auto_increment primary key, name va...原创 2008-11-04 13:12:53 · 60 阅读 · 0 评论 -
hibernate 总结
1. get和load区别 load加载方法: Java代码 Users user = (Users)session.load(Users.class, new Integer(1)); get加载方法: Java代码 Users user = (Users)session.get(Users.class, new Integer(1)); 以上面代码为例: 区别一:如果没...原创 2008-11-04 10:53:31 · 75 阅读 · 0 评论 -
hibernate 批量插入
在企业应用开发中,经常用到批量插入的功能。对于Hibernate,如果使用方法不当,性能将大打折扣,令人难以忍受。这里介绍一种批量插入的方法,代码如下: java 代码 Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( int ...原创 2008-11-04 10:16:40 · 168 阅读 · 0 评论 -
Hibernate:Query.list 与 Query.iterate 的区别
list: 结果存入缓存,但不从缓存里面取;查询时属性连同id一起找出来,只有“一句”select; iterate:结果存入缓存,并在缓存中查找结果;查询时先找出所有的 id,然后根据 id 到缓存里面查找,如果没有命中,再到数据库中查找该id对应的其他属性。可能会有多行 select。 分页:firstResult 与 maxResult 的影响。 Oracle:支持 rownu...原创 2009-08-25 22:07:34 · 77 阅读 · 0 评论