`

关于Hibernate的工作原理总结

阅读更多
1.Hibernate 的初始化. 
读取Hibernate 的配置信息-〉创建Session Factory 
1) 创建Configeration类的实例。 
它的构造方法:将配置信息(Hibernate config.xml)读入到内存。 
一个 Configuration实例代表Hibernate 所有Java类到Sql数据库映射的集合。 
2)创建SessionFactory实例 
把Configeration 对象中的所有配置信息拷贝到SessionFactory的缓存中。 
SessionFactory 的实例代表一个数据库存储员源,创建后不再与Configeration 对象关联。 
缓存(cache):指Java对象的属性(通常是一些集合类型的属性--占用内存空间。 
     SessionFactory的缓存中:Hibernate 配置信息。OR映射元数据。 
缓存-大:重量级对象 小:轻量级对象 
3)调用SessionFactory创建Session的方法 
1.用户自行提供JDBC连接。 
   Connection con=dataSource.getConnection(); 
   Session s=sessionFactory.openSession(con); 
2.让SessionFactory提供连接 
   Session s=sessionFactory.openSession(); 
4)通过Session 接口提供的各种方法来操纵数据库访问。  
Hibernate 的缓存体系 
一级缓存: 
Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象。 
每个Session 都有自己独立的缓存,且只能被当前工作单元访问。 
二级缓存: 
SessionFactory的外置的可插拔的缓存插件。其中的数据可被多个Session共享访问。 
SessionFactory 的内置缓存:存放了映射元数据,预定义的Sql语句。  
 
Hibernate 中Java对象的状态 
1.临时状态 (transient) 
特征: 
   1.不处于Session 缓存中 
   2.数据库中没有对象记录 
Java 如何进入临时状态 
   1.通过new语句刚创建一个对象时 
   2.当调用Session 的delete()方法,从Session 缓存中删除一个对象时。  
 
2.持久化状态(persisted) 
特征: 
   1.处于Session 缓存中 
   2.持久化对象数据库中设有对象记录 
   3.Session 在特定时刻会保持二者同步 
Java 如何进入持久化状态 
   1.Session 的save()把临时-〉持久化状态 
   2.Session 的load(),get()方法返回的对象 
   3.Session 的find()返回的list集合中存放的对象 
   4.Session 的update(),saveOrupdate()使游离-〉持久化 
3.游离状态(detached) 
特征: 
   1.不再位于Session 缓存中 
   2.游离对象由持久化状态转变而来,数据库中可能还有对应记录。 
Java如何进入持久化状态-〉游离状态 
   1.Session 的close()方法 
   2.Session 的evict()方法,从缓存中删除一个对象。提高性能。少用
分享到:
评论

相关推荐

    Hibernate 工作原理图Hibernate 工作原理图

    ### Hibernate工作原理详解 #### 一、概述 Hibernate 是一款开放源代码的 ORM(Object Relational Mapping)框架,它能够将 Java 类与数据库表建立映射关系,从而简化了持久层的操作。通过 Hibernate,开发人员...

    Hibernate实现原理模拟

    本教程将通过模拟Hibernate的实现原理,帮助开发者深入理解其工作方式,以便更好地运用到实际项目中。 **一、Hibernate概述** Hibernate是一个开源的ORM框架,它提供了一种在Java应用中持久化对象到关系数据库的...

    Hibernate原理

    ### Hibernate原理深度解析 #### Hibernate为何重要? Hibernate作为一款开源的对象关系映射(ORM)框架,在Java开发领域占据着举足轻重的地位。其重要性体现在以下几个方面: 1. **资源管理**:Hibernate通过...

    mybatis.hibernate,springmvc工作原理以及流程总结文档.pdf

    mybatis.hibernate,springmvc工作原理以及流程总结文档

    Hibernate、Spring和Struts工作原理及使用理由

    接下来,我们将详细探讨这三个框架的工作原理及其使用理由。 首先,Struts是MVC(Model-View-Controller)设计模式的一种实现,主要用于控制应用程序的流程。在Struts中,Controller组件负责接收HTTP请求,解析请求...

    Hibernate学习笔记与总结

    通过以上内容的学习,开发者能够理解Hibernate的基本原理和工作流程,能够熟练地在Java项目中集成Hibernate,进行数据库操作。在实际开发中,还需要不断实践和优化,以充分利用Hibernate的优势,提高开发效率和代码...

    hibernate技术研究对比总结

    本文档的主要目的是为了深入理解 Hibernate 的工作原理、特性和最佳实践,以及与其他ORM框架的比较,为开发者提供决策依据。 1.2 **文档范围** 文档覆盖了 Hibernate 的核心概念,如对象关系映射、持久化模型、事务...

    Hibernate4的一些总结

    【标题】:“Hibernate4的一些总结” 【描述】:这篇博客主要涵盖了Hibernate4框架在实际开发中的应用和理解,作者通过个人实践对Hibernate4的核心特性和使用技巧进行了深度解析。 【标签】:“源码”和“工具”这...

    SSH工作原理文档 总结报告

    **SSH工作原理文档总结报告** **一、SSH框架概述** SSH(Spring、Struts、Hibernate)是Java开发中广泛使用的三大开源框架,它们分别负责应用的业务层、表现层和持久层,共同构建了一个强大的MVC(Model-View-...

    Hibernate分页查询原理解读

    ### Hibernate 分页查询原理详解 #### 一、引言 在大数据量处理场景下,分页查询是提高数据检索效率的重要手段之一。Hibernate作为Java领域内最常用的持久层框架之一,其内置的分页功能非常实用且高效。本文将深入...

    Hibernate的框架的总结

    ### Hibernate框架技术总结 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它为Java...通过这些内容的学习,开发者可以更好地理解和掌握Hibernate的工作原理及应用场景,提高开发效率和代码质量。

    学习hibernate必看ppt--总结的很全面

    【描述】:“添加Hibernate库文件视频操作,01_Hibernate原理及简单使用,一对多,多对一,多对多 关联映射,Hql,hibernate创建事例...” 描述中提到了几个关键的学习点: 1. **Hibernate原理及简单使用**:这...

    java数据库增删改查操作实例(hibernate原理)

    总结,这个实例让我们深入了解了Java中直接进行数据库操作的机制,包括反射API的使用、SQL语句的构造以及DAO模式的应用。虽然这种方式需要编写更多代码,但可以提供更高的灵活性和对数据库操作的控制。而Hibernate等...

    Hibernate 框架总结

    从Hibernate的核心概念、工作原理到其实现细节,Hibernate框架提供了一套全面的解决方案,使得数据库操作更加简单和高效。 首先,Hibernate框架的核心接口包括Session、SessionFactory、Configuration、Transaction...

    三大框架工作原理总结

    ### 三大框架工作原理总结 #### 一、Hibernate工作原理及使用原因 ##### Hibernate是什么? Hibernate是一种对象关系映射(Object Relational Mapping, ORM)工具,它为Java应用程序提供了简化数据库交互的方式。...

    Hibernate、Spring和Struts工作原理及使用理由.txt

    ### Hibernate、Spring和Struts工作原理及使用理由 #### Hibernate工作原理及使用理由 **1. Hibernate概述** Hibernate是一个开放源代码的ORM(Object-Relational Mapping)框架,用于简化数据库操作,它允许将...

    Struts2+Spring+Hibernate知识点总结

    - **Hibernate的工作原理**主要包括以下几个步骤: 1. **读取配置文件**:读取`hibernate.cfg.xml`和实体映射文件(`*.hbm.xml`),并创建SessionFactory对象。 2. **打开Session**:通过SessionFactory获取Session...

    SSH之Hibernate总结

    2. Hibernate原理模拟 - 什么是O/R Mapping及为什么需要 O/R Mapping(对象关系映射)解决了对象模型与关系数据库之间的转换问题,使得开发者可以使用面向对象的方式来操作数据库。Hibernate通过提供API和XML映射...

Global site tag (gtag.js) - Google Analytics