![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hibernate
文章平均质量分 77
haoni65
这个作者很懒,什么都没留下…
展开
-
Hibernate延迟加载的原理:
当hibernate设置为 延迟加载策略时 .查询后返回的是代理类的实例:代理类的特征: 1. 有hibernate 在运行时动态生成.它扩展了持久化类.因此实现了持久化类的所有属性和方法.它的实现对应用程序是透明的(也就是应用程序看不到这个代理类2,hibernate创建代理类的实例.仅仅初始化它的 OID 属性3,当应用程序第一次访问代理类的属性时就会初始话代...原创 2008-11-13 03:04:26 · 58 阅读 · 0 评论 -
Hibernate的缓存机制
缓存的概念:java对象的属性(通常是一些集合类型的属性 )占用的内存空间。如果对象的占用的内存很大就称为重量级的对象。如果对象的内存小就称为轻量级的对象。Session 的缓存被称为hibernate的第一级缓存。SessionFactory的外置缓存称为hibernate 的二级缓存。这两个缓存都位于持久层,它们存放的都是数据库数据的拷贝。SessionFactory的内置缓存...原创 2008-11-13 03:07:20 · 53 阅读 · 0 评论 -
关于对Hibernate一级缓存的理解
Hibernate的一级缓存是由Session提供的,因此它只存在于Session的生命周期中,当程序调用save(),update(),saveorupdate()等方法 及调用查询接口list,filter,iterate时,如session缓存中还不存在相应的对象,Hibernate会把该对象加入到一级缓存中,当Session关闭的时候该Session所管理的一级缓存也会立即被清除H...原创 2008-11-15 22:06:52 · 93 阅读 · 0 评论 -
Hibernate一级级存的理解续
hibernate 一级缓存:(缓存的是实体对象)一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务缓存哪些方法支持一级缓存:get()load()iterate() (查询实体对象)如何管理一级缓存:session.clear() session.evict()如何避免一次性大量的实体数据入库导致内存溢出...原创 2008-11-15 22:17:10 · 67 阅读 · 0 评论 -
hibernate悲观锁 与乐观锁
悲观锁 悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改。举个例子:查询id=1的那条记录,使用悲观锁[code="java"]User user = (User)session.load(User.class, 1 , LockMode.UPGRADE);[/code]使用了数据库中的...2008-11-15 22:25:07 · 65 阅读 · 0 评论 -
Hibernate的锁机制
Hibernate锁机制包括悲观锁和乐观锁1.悲观锁它指的是对数据被外界修改持保守态度。假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,为了保持数据被操作的一致性,于是对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制来实现。基于jdbc实现的数据库加锁如下:[code="java"]select * from account where name="...原创 2008-11-15 22:36:36 · 66 阅读 · 0 评论 -
乐观锁的理解
悲观锁假定任何时刻存取数据时,都有可能有另一个客户也正在存取同一笔资料,因而对资料采取了资料库层次的锁定状态,在锁定的时间内其他的客户不能对资料进行存取,对于单机或小系统而言,这并不成问题,然而如果是在网路上的系统,同时刻会有许多连线,如果每一次读取资料都造成锁定,那后面的存取就必须等待,这将造成效能上的问题,造成后面使用者的长时间等待。 乐观锁定则认为资料的存取很少发生同时存取...原创 2008-11-15 23:00:05 · 96 阅读 · 0 评论 -
Hibernate中悲观锁的理解
软件系统的并发控制一般是通过加锁(有乐观锁和悲观锁两种)来实现,乐观锁是一种事后补救措施,是通过程序的逻辑控制版本来实现的,而悲观锁是事前的一种预防措施,它利用数据库的锁机制来实现。 虽然乐观锁能够提高系统的性能,但它是对发生冲突的访问进行事后的补救,应用在用户输入数据量很少的场合比较适合,但如果在企业ERP,用户与系统交互涉及大量数据在页面表单上录入,如果事后提交失败后才提示用...原创 2008-11-15 23:10:09 · 113 阅读 · 0 评论 -
hibernate二级缓存基本概念
Hibernate提供了两级缓存,第一级是Session的缓存。由于Session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的缓存。第一级缓存是必需的,不允许而且事实上也无法比卸除。在第一级缓存中,持久化类的每个实例都具有唯一的OID。 第二级缓存是一个可插拔的的缓存插件,它是由SessionFactory负责管理。由于SessionFactory...原创 2008-11-15 23:30:44 · 92 阅读 · 0 评论