本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告
本博客在此声明所有文章均为转摘,只做资料收集使用。并无其他商业用途。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:210
评论数量:205
留言数量:-19
访问次数:917854
建立时间:2007年5月10日




[Hibernate]Hibernate乐观锁的实现原理剖析与使用乐观锁时的注意点
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/10/24 10:49:26

Hibernate支持乐观锁。当多个事务同时对数据库表中的同一条数据操作时,如果没有加锁机制的话,就会产生脏数据(duty data)。Hibernate有2种机制可以解决这个问题:乐观锁和悲观锁。这里我们只讨论乐观锁。 Hibernate乐观锁,能自动检测多个事务对同一条数据进行的操作,并根据先胜原则,提交第一个事务,其他的事务提交时则抛出org.hibernate.StaleObjectStateException异常。 Hibernate乐观锁是怎么做到的呢? 我们先从Hibernate乐观锁的实现说起。要实现Hibenate乐观锁,我们首先要在数据库表里增加一个版本控制字段,字段名随意,比如就叫version,对应hibernate类型只能为 long,integer,short,timestamp,calendar,也就是只能为数字或timestamp类型。然后在hibernate mapping里作如下类似定义: <version name="version" column=&quo


阅读全文(3304) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]不要依赖hibernate的二级缓存
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/4/26 22:28:07

关键字: 不要依赖hibernate的二级缓存 一、hibernate的二级缓存
如果开启了二级缓存,hibernate在执行任何一次查询的之后,都会把得到的结果集放到缓存中,缓存结构可以看作是一个hash table,key是数据库记录的id,value是id对应的pojo对象。当用户根据id查询对象的时候(load、iterator方法),会首先在缓存中查找,如果没有找到再发起数据库查询。但是如果使用hql发起查询(find, query方法)则不会利用二级缓存,而是直接从数据库获得数据,但是它会把得到的数据放到二级缓存备用。也就是说,基于hql的查询,对二级缓存是只写不读的。
针对二级缓存的工作原理,采用iterator取代list来提高二级缓存命中率的想法是不可行的。Iterator的工作方式是根据检索条件从数据库中选取所有目标数据的id,然后用这些id一个一个的到二级缓存里面做检索,如果找到就直接加载,找不到就向数据库做查询


阅读全文(1501) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]hibernate二级缓存攻略
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/4/11 20:51:55

关键字: hibernate二级缓存攻略 http://www.javaeye.com/topic/18904
很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。
我的经验主要来自hibernate2.1版本,基本原理和3.0、3.1是一样的,请原谅我的顽固不化。

hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。

二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等,需要设置hibernate.cache.provider_class,我们这里用ehcache,在2.1中就是
hibernate.cache.provider_class=net.sf.hibernate.cache

阅读全文(2918) | 回复(1) | 编辑 | 精华 | 删除
 


[Hibernate]Hibernate优化方案
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2009/3/22 10:48:01

一、批量修改和删除

  在Hibernate 2中,如果需要对任何数据进行修改和删除操作,都需要先执行查询操作,在得到要修改或者删除的数据后,再对该数据进行相应的操作处理。在数据量少的情况下采用这种处理方式没有问题,但需要处理大量数据的时候就可能存在以下的问题:

   占用大量的内存。

   需要多次执行update/delete语句,而每次执行只能处理一条数据。

  以上两个问题的出现会严重影响系统的性能。因此,在Hibernate 3中引入了用于批量更新或者删除数据的HQL语句。这样,开发人员就可以一次更新或者删除多条记录,而不用每次都一个一个地修改或者删除记录了。

  如果要删除所有的User对象(也就是User对象所对应表中的记录),则可以直接使用下面的HQL语句:

  delete User

  而在执行这个HQL语句时,需要调用Query对象的executeUpdate()方法,具体的实例如下所示:

  String HQL="delete User";

阅读全文(1537) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]将遗留 Hibernate 应用程序迁移到 OpenJPA 和 EJB 3.0
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/10/18 15:21:57

将遗留 Hibernate 应用程序迁移到 OpenJPA 和 EJB 3.0

阅读全文(2715) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]struts+hibernate项目debug总结
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/8/17 10:45:27

javax.servlet.ServletException: Cannot retrieve mapping for action /companyNews

struts-config.xml中没有写相关companyNews的action.

============================================
在myeclipse 增加一个jar包时候,先打开项目properties,选择java build path --> libraries -->add external JARs 选择到需要的jar包,加入后,发现,他这个包加载的是绝对路径,而我们的项目需要cvs共享,无法

commit到cvs服务器。myeclipse有以下提示信息:
2 build path entries are missing.

解决办法是,关闭myeclipse,用notepad

阅读全文(1677) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]使用spring和hibernate配置ehcache和query cache
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/7/19 17:06:26

lhwork 发表于 2006-12-29 16:25:34 1、 applicationContext.xml <prop key="hibernate.ca

阅读全文(1765) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]什么叫n+1次select查询问题?
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/7/19 16:14:48

lhwork 发表于 2006-12-22 16:11:05 在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的 Order对象。以Customer和O

阅读全文(1807) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]hibernate二级缓存攻略 Ehcache(from javaEyes)
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/7/19 15:18:26

lhwork 发表于 2006-12-27 11:52:47 很多人对二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下hibernate的二级缓存的,今天终于忍不住了。
我的经验

阅读全文(1985) | 回复(0) | 编辑 | 精华 | 删除
 


[Hibernate]hibernate的缓存使用
文章收藏,  网上资源,  软件技术,  电脑与网络

李小白 发表于 2007/7/19 14:57:17

lhwork 发表于 2006-12-27 11:55:51

阅读全文(2195) | 回复(0) | 编辑 | 精华 | 删除
 


« 1 2 »



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.094 second(s), page refreshed 144753444 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号