`
hong0104
  • 浏览: 16474 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

hibernate的工作原理和体系结构

阅读更多

1. Hibernate 的初始化.

读取Hibernate 的配置信息-〉创建Session Factory

1) 创建Configeration类的实例。

它的构造方法:将配置信息(Hibernate config.xml)读入到内存。
一个Configeration 实例代表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 体系结构与工作原理.txt

    Hibernate 体系结构与工作原理.txtHibernate 体系结构与工作原理.txtHibernate 体系结构与工作原理.txt

    spring+struts+hibernate工作原理

    典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与...

    hibernate基础

    主要内容包括Hibernate的基本体系结构、如何使用Java5注解和基于XML的映射文件来表示映射信息,并讨论了HibernateSession对象和HQL的使用。本书结合大量实际代码,力图使读者能够更好地学习并掌握Hibernate的使用。...

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

     1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型  1.2.1 概念模型  1.2.2 关系数据...

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

     1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型  1.2.1 概念模型  1.2.2 关系数据...

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

     1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型  1.2.1 概念模型  1.2.2 关系数据...

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

     1.1 应用程序的分层体系结构  1.1.1 区分物理层和逻辑层  1.1.2 软件层的特征  1.1.3 软件分层的优点  1.1.4 软件分层的缺点  1.1.5 Java应用的持久化层  1.2 软件的模型  1.2.1 概念模型  1.2.2 关系数据...

    hibernate-envers-demo:使用Hibernate Envers,Spring Boot和AngularJS的简短演示

    使用的技术选择Spring-boot( )建立一个基于后端REST体系结构和使用AngularJS( )的前端实现的快速工作模型。会消耗这些服务。 Hibernate envers( )将用于审核对数据库行的所有更改,并查询特定时间点的更改。 ...

    Spring从入门到精通 源码

    本书由浅入深,循序渐进地介绍了Spring的体系结构和相关知识点,目的是帮助初学者快速掌握Spring,并能使用Spring进行应用程序的开发。本书最大的特色在于每章都是由浅入深,从一个简单的示例入手,让读者快速了解本...

    Spring从入门到精通(珍藏版)

    本书由浅入深,循序渐进地介绍了Spring的体系结构和相关知识点,目的是帮助初学者快速掌握Spring,并能使用Spring进行应用程序的开发。本书最大的特色在于每章都是由浅入深,从一个简单的示例入手,让读者快速了解本...

    健身房管理信息系统设计.doc

    1.2.3 J2EE应用系统体系结构 J2EE体系结构采用典型的多层次结构,分别为客户端、表现层、业务逻辑层、数据层 ,各层次间相对独立和松散耦合,保证了使用开发框架的应用良好的结构。如J2EE体系 结构图1-2所示: 图1-...

    涵盖了90%以上的面试题

    计算机网络体系结构 谈谈你对Struts的理解。 谈谈你对Hibernate的理解。 谈谈你对Lucene和solr的理解 谈谈你对ActiveMQ的理解 Spring的IOC,DI和AOP 谈谈你对webservice和dubbo的理解 谈谈你的SOA的理解。 谈谈你对...

    涵盖了 Java 基础、集合、源码、并发、虚拟机、框架、数据库、网络编程、设计模式、新特性和数据结构等多个知识领域的面试突击

    Java企业级开发:Spring、Hibernate、MyBatis等框架原理 数据库和缓存:SQL优化、索引、Redis、Memcached等 分布式系统:负载均衡、集群、分布式事务、分布式锁等 使用人群: Java初/中级工程师,准备面试、,巩固和提升...

    达内java培训目录

    掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。 Java面向对象 面向对象特性:封装、继承、多态等,面向对象程序设计,基础设计模式等。 掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向...

    J2EE应用开发详解

    第1章 Java Web应用开发简介 1 1.1 Java EE应用概述 1 1.2 Java EE概念 1 1.2.1 Java EE多层模型 1 1.2.2 Java EE体系结构 2 1.3 Java EE的核心API与组件 4 1.4 Web服务器和应用服务器 13 1.5 小结 16 第2章 建立...

    java面试题

    72.6. Struts体系结构中的组件 69 72.7. struts如何实现国际化 70 72.8. struts2.0的常用标签 71 72.9. action是单实例还是多实例,为什么? 73 72.10. Struts的validate框架是如何验证的? 74 72.11. ...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    真正的客户机/服务器体系结构。  2.图形化用户界面,使系统管理和数据库管理更加直观、简单。  3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。  4.SQL Server与Windows NT完全集成,利用...

Global site tag (gtag.js) - Google Analytics