hibernate是一个基于ORM的持久化框架。它是对jdbc的轻量级封装,
从图可以知道hibernate的六大核心接口,两个主要配置文件,以及他们的直接关系。
1、Configuration接口 : 负责配置并启动hibernate
2、SessionFactory接口 : 负责初始化hibernate
3、Session接口 : 负责持久化对象的CRUD操作
4、Transaction接口 : 负责事务
5、Query接口和Criteria接口 : 负责执行各种数据库查询
Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃。
Hibernate工作原理:
1、解析hibernate.cfg.xml配置文件
通过Configuration config = new Configuration().configure();
读取并解析hiberante.cfg.xml配置文件
2、读取并解析映射信息
hibernate.cfg.xml中的<mapping resource="com/User.hbm.xml"/>映射文件
3、创建SessionFactory对象
SessionFactory sf = config.buildSessionFactory();
4、打开Session
Session session = sf.openSession();
5、创建并启动事务
Transaction tx = session.beginTransaction();
6、CRUD持久化操作
7、提交事务
tx.commit();
8、关闭session
9、关闭SessionFactory
hibernate优势:
1、对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2、Hibernate是一个基于JDBC的主流持久层框架,基于ORM实现。很大程度的简化DAO层编码工作。
3、hibernate使用java反射机制。
4、hibernate是轻量级框架,性能优秀,支持各种关系数据库,易于测试。
hibernate缓存机制
hibernate缓存的作用:
hibernate是一个持久层框架,经常访问物理数据库,为了降低应用程序对物理数据源访问的频次,从而提高应用程序的运行性能。缓存内的数据对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。
hibernate缓存分类:
分为一级缓存和二级缓存
一级缓存又称为“session的缓存”,它是内置的,即使用hibernate便使用了session缓存。由于session对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是
事务范围的缓存。在第一级缓存中,持久化类的每个实例都具有唯一的OID。
二级缓存又称为“SessionFactory的缓存”,由于SessionFactory对象的生命周期和应用程序的整个过程对应,因此hibernate二级缓存是进程范围或者集群范围的缓存,有可能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务隔离级别。第二级缓存是可选的,是一个可配置的插件,在默认情况下,sessionFactory不会启用这个插件。
第三方二级缓存实现:
Hibernate除了自带的缓存机制外,还提供了第三方缓存机制实现的接口,如:
1. JCS
2. EHCache
3. OSCache
4. JBoss Cache
5. SwarmCache
什么样的数据适合存放到第二级缓存中?
1 很少被修改的数据
2 不是很重要的数据,允许出现偶尔并发的数据
3 不会被并发访问的数据
4 常量数据
不适合存放到第二级缓存的数据?
1经常被修改的数据
2 .绝对不允许出现并发访问的数据,如财务数据,绝对不允许出现并发
3 与其他应用共享的数据。
Hibernate查找对象如何应用缓存?
当Hibernate根据ID访问数据对象的时候,首先从Session一级缓存中查;查不到,如果配置了二级缓存,那么从二级缓存中查;如果都查不到,再查询数据库,把结果按照ID放入到缓存
删除、更新、增加数据的时候,同时更新缓存
- 大小: 26.8 KB
分享到:
相关推荐
关于hibernate的基本原理和工作流程
这是我写的一个小示例希望能给大家学习带来帮助 ---dragonzhao
java基本数据类型及字节大小,还有hibernate运行原理,供初学者参考
本软件用具体的实例演示了Hibernate基本原理,继承映射,集合映射,实体映射,Ssssion与Critria,事务管理等核心技术,是用户快速掌握和使用Hibernate最佳教材
本书的内容主要包括:开源开发工具eclipse、用eclipse开发java web应用程序、struts应用技巧、struts的核心组件、struts的高级功能、 hibernate基本原理、hibernate的核心组件、hibernate的高级功能、 struts与...
快速入门Hibernate,掌握基本的Hibernate原理和配置
持久化是将程序数据在持久状态和瞬时状态间转换的机制。JDBC就是一种持久化机制。文件IO也是一种持久化机制。下面通过本文给大家介绍Java中Hibernate的基本原理,需要的朋友参考下吧
本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文地目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上现有的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会有...
在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置。 也许你听说过Hibernate 的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那 么本文正是你所需要的!在本文中,我...
系统学习Hibernate3的开发知识,循序渐进 第一章:Hibernate入门 包括:是什么、ORMapping原理、能干什么、有什么、怎么做(做什么) ... 包括:分增删改查的操作说明Hibernate基本的实现原理 第八章:最佳实践
也许你听说过Hibernate的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那么本文正是你所需要的!在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置
内容提要 本书深入浅出地介绍了轻量级开源框架Hibernate3的... “使用Hibernate并非易事,本书透彻地阐述了Hibernate的原理与应用,并配有大量实战代码,能够使新用户非常轻松地入门。” ——RegDeveloper.co.uk
但前段时间第一次用 struts 2 整合 hibernate 写一个小小的书店租赁管理系统时出了好些问题,输出语句添了又删,删了又添,搞得有点小郁闷,于是花了半个晚上学下 Log4j ,掌握了一点它的基本原理。
本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文的目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上很多资料介绍的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会...
本文通过图文并茂的形式给大家介绍的hibernate4基本实现原理,非常不错,具有参考借鉴价值,需要的朋友参考下吧
Hibernate对象关系映射,基本工作原理是将对象数据保存到关系数据库的表中,以及将关系数据库中数据读入到对象中。
Hibernate4(关系映射,事务,原理,性能和二级缓存,最佳实践) Hibernate4(基本开发,入门,配置,CRUD)
21.2 数据库系统的锁的基本原理 21.2.1 锁的多粒度性及自动锁升级 21.2.2 锁的类型和兼容性 21.2.3 死锁及其防止办法 21.3 数据库的事务隔离级别 21.3.1 在mysql.exe程序中设置隔离级别 21.3.2 在应用...
13.3 高速缓存基本原理 13.3.1 高速缓存策略和范围 13.3.2 Hibernate高速缓存架构 13.4 高速缓存实践 13.4.1 选择并发控制策略 13.4.2 理解高速缓存区域 13.4.3 设置本地的高速缓存提供...