随笔分类 -  hibernate

摘要:缓存在应用程序中的使用十分广泛,由于缓存的介质一般是内存,读写速度快,所以通常我们会把常用的或者要通过比较耗时或大量资源取得的数据缓存起来,从而加整后续的使用。这样在缓存的应用过程中,就需要考虑缓存并发访问的管理以及缓存数据的生命周期。通常,缓存的范围决定了缓存的生命周期以及可以被谁访问。缓存的范围可分为三类。1 事务范围:缓存只能被当前事务访问。缓存的生命周期依赖于事务的生命周期,当事务结束时,缓存也就结束生命周期。在此范围下,缓存的介质是内存。事务可以是数据库事务或者应用事务,每个事务都有独自的缓存,缓存内的数据通常采用相互关联的的对象形式。2 进程范围:缓存被进程内的所有事务共享。这些事 阅读全文
posted @ 2013-04-17 21:57 Jevo 阅读(682) 评论(0) 推荐(0)
摘要:我们知道Hibernate是对JDBC的轻量级对象封装,它本身不具备事务处理能力,只是对底层JDBC事务或JTA事务进行了封装。具体使用什么事务可以在配置文件中进行配置: <session-factory> <property name="hibernate.transaction.factory_class"> org.hibernate.transaction.JTATransactionFactory <!--org.hibernate.transaction.JDBCTransactionFactory--> </prope 阅读全文
posted @ 2013-04-16 23:20 Jevo
摘要:延迟加载就是在当真正需要数据的时候去执行数据加载操作,从而避免一些多余的性能开销(数据库查询)。在Hibernate3中提供了对实体对象、集合和属性的延迟加载。1.实体对象的延迟加载延迟加载实体对象只需在实体映射关系中将lazy属性设置为true,如下: <class name=”xxx” table=”xxx” lazy=”true”> …… </class> 通过一个中间代理对象,Hibernate实现了实体的延迟加载,只有当用户真正发起获得实体对象属性的动作时,才真正会发起数据库查询操作。所以实体的延迟加载是用通过中间代理类完成的,所以只有session.load 阅读全文
posted @ 2013-04-15 23:02 Jevo 阅读(554) 评论(0) 推荐(0)
摘要:Hibernate提供了一系列的查询接口,这些接口在实现上又有所不同。这里对Hibernate中的查询接口进行一个小结。我们首先来看一下session加载实体对象的过程:Session在调用数据库查询前,首先会在缓存中进行查询。如果在内部缓存中通过实体类型和id进行查找并命中,数据状态合法,则直接返回。如果内部缓存中未发现有效数据,则查询第二级缓存,如果第二级缓存命中,则返回。如在第二级缓存中没有命中,则发起数据库查询操作(Select SQL),根据映射配置和Select SQL得到的ResultSet,创建对应的数据对象。将其数据对象纳入当前Session实体管理容器(一级缓存)。执行In 阅读全文
posted @ 2013-04-10 23:08 Jevo 阅读(1049) 评论(0) 推荐(0)
摘要:在项目的开发过程之中,我们常会遇到数据的批量处理问题。在持久层采用Hibernate框架时,在进行批量操作时,需要考虑Hibernate实现机制带来的一些问题。我们知道在每个Hibernate Session中都维持了一个必选的数据缓存,所有保存的实例都将保存在Session缓存中,这个缓存随着Session的创建而存在,随着Session的销毁而消亡。这个内部缓存正常情况下是由Hibernate自动维护的,并且没有容量限制。在批量插入与更新时,由于每次保存的实体都会保存在Session缓存中,当数据量大的时候,就可能出现OutOfMemoryException(内存溢出异常)。所以批量增加或 阅读全文
posted @ 2013-04-09 20:55 Jevo 阅读(16649) 评论(0) 推荐(3)
摘要:Hibernate是当前流行的对象关系映射(ORM)框架,实现了程序对象到关系型数据库数据的映射。即然ORM实现的是对象和关系型数据表间的映射,它必然要在映射过程中解决对象层次结构中的关系问题。这里对映射关系作一个小结,以备以后查阅。我们很多Web项目都是由前端页面驱动来进行架构设计,即首先作出Web原型后,并基于此原型来产生表结构。一般情况下,所产生的对象层次是扁平的,对应的表结构也很简单,表间通常没有复杂的关联关系。但也有很多时候,我们需要往先分析项目的业务,然后建立起业务模型,根据业务模型的描述分解出不同类型的对象类。在最后会考虑对其中需要持续化的实体对象建立相关的数据表。这是面向对象的 阅读全文
posted @ 2013-04-02 22:12 Jevo 阅读(1849) 评论(0) 推荐(0)