`

hibernate基本原理

阅读更多
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原理

    关于hibernate的基本原理和工作流程

    hibernate+mysql基本原理示例

    这是我写的一个小示例希望能给大家学习带来帮助 ---dragonzhao

    java基本数据类型字节大小 hibernate运行原理

    java基本数据类型及字节大小,还有hibernate运行原理,供初学者参考

    Hibernate从实践到精通

    本软件用具体的实例演示了Hibernate基本原理,继承映射,集合映射,实体映射,Ssssion与Critria,事务管理等核心技术,是用户快速掌握和使用Hibernate最佳教材

    J2EE开源编程精要15讲--整合 源代码

     本书的内容主要包括:开源开发工具eclipse、用eclipse开发java web应用程序、struts应用技巧、struts的核心组件、struts的高级功能、 hibernate基本原理、hibernate的核心组件、hibernate的高级功能、 struts与...

    Hibernate原理与配置快速入门

    快速入门Hibernate,掌握基本的Hibernate原理和配置

    详解Java中Hibernate的基本原理

    持久化是将程序数据在持久状态和瞬时状态间转换的机制。JDBC就是一种持久化机制。文件IO也是一种持久化机制。下面通过本文给大家介绍Java中Hibernate的基本原理,需要的朋友参考下吧

    Struts+Spring+Hibernate开发实例 (SSH整合)

    本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文地目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上现有的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会有...

    hibernate原理与配置快速入门

    在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置。 也许你听说过Hibernate 的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那 么本文正是你所需要的!在本文中,我...

    Hibernate3开发.pdf

    系统学习Hibernate3的开发知识,循序渐进 第一章:Hibernate入门 包括:是什么、ORMapping原理、能干什么、有什么、怎么做(做什么) ... 包括:分增删改查的操作说明Hibernate基本的实现原理 第八章:最佳实践

    hibernate原理

    也许你听说过Hibernate的大名,但可能一直不了解它,也许你一直渴望使用它进行开发,那么本文正是你所需要的!在本文中,我向大家重点介绍Hibernate的核心API调用库,并讲解一下它的基本配置

    hibernate基础

    内容提要  本书深入浅出地介绍了轻量级开源框架Hibernate3的... “使用Hibernate并非易事,本书透彻地阐述了Hibernate的原理与应用,并配有大量实战代码,能够使新用户非常轻松地入门。”  ——RegDeveloper.co.uk

    Log4j 基本原理

    但前段时间第一次用 struts 2 整合 hibernate 写一个小小的书店租赁管理系统时出了好些问题,输出语句添了又删,删了又添,搞得有点小郁闷,于是花了半个晚上学下 Log4j ,掌握了一点它的基本原理。

    Struts+Spring+Hibernate之选课系统

    本文并不想介绍Struts,Spring,Hibernate的原理系统架构等,本文的目的是通过一个较复杂地实例介绍如何整合Struts,Spring,Hibernate,网上很多资料介绍的例子虽然也能达到目的,但功能都比较单一,复杂的例子时会...

    详解hibernate4基本实现原理

    本文通过图文并茂的形式给大家介绍的hibernate4基本实现原理,非常不错,具有参考借鉴价值,需要的朋友参考下吧

    Hibernate_test

    Hibernate对象关系映射,基本工作原理是将对象数据保存到关系数据库的表中,以及将关系数据库中数据读入到对象中。

    Hibernate4实战(pdf_source).

    Hibernate4(关系映射,事务,原理,性能和二级缓存,最佳实践) Hibernate4(基本开发,入门,配置,CRUD)

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     21.2 数据库系统的锁的基本原理  21.2.1 锁的多粒度性及自动锁升级  21.2.2 锁的类型和兼容性  21.2.3 死锁及其防止办法  21.3 数据库的事务隔离级别  21.3.1 在mysql.exe程序中设置隔离级别  21.3.2 在应用...

    Hibernate实战(第2版 中文高清版)

     13.3 高速缓存基本原理   13.3.1 高速缓存策略和范围   13.3.2 Hibernate高速缓存架构   13.4 高速缓存实践   13.4.1 选择并发控制策略   13.4.2 理解高速缓存区域   13.4.3 设置本地的高速缓存提供...

Global site tag (gtag.js) - Google Analytics