`
kidiaoer
  • 浏览: 805613 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

关于Hibernate的工作原理总结

阅读更多
关于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 用途 总结

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

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

    hibernate文档总结,技术汇总,PDF版的,hibernate简明参考文档

    hibernate文档总结,技术汇总,PDF版的 如果想复习hibernate,了解hibernate新技术,这个真的很不错....里面介绍了很多hibernate常用的插件,hibernate配置文件,hibernate原理,hibernate缓存机制.你选它,真的没有错.

    struts spring hibernate 面试总结.doc

    Struts工作机制?为什么要使用Struts? ………… Hibernate工作原理及为什么要用? ………… spring工作机制及为什么要用? …………

    Hibernate 3 注解技术讲解

    Hibernate3注解技术讲解,Doc格式,网上收集而来。讲解比较清晰,总结的很不错,是Hibernate3的学习好教程。原名:Hibernate3学习笔记。

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

    添加Hibernate库文件视频操作,01_Hibernate原理及简单使用,一对多,多对一,多对多 关联映射,Hql,hibernate创建事例...

    实体类对应关系处理hibernate

    自己根据课本总结的使用hibernate时,实体类间映射文件即*.hbm.xml文件的写法。如果你正在学习hibernate,保证会对你有所帮助。

    hibernate 二级缓存收集、总结、整理

    hibernate 二级缓存原理规律总结,总结、整理了二级缓存方面的实际运用情况

    strtus spring Hibernate 个人总结

    SSH配置源码分析,总结,面试常问到,配置详解,原理,机制。

    传智播客李勇hibernate源码1-20课

    13_总结分析第一天的讲解内容 14_多对一关联关系的映射与原理分析 15_多对一关联关系的检索与原理分析 16_保存多对一关联关系的更进一步分析 17_一对多关联关系的映射与原理分析 18_一对一主键关联关系的映射...

    hibernate,struts,spring面试题总结.doc

    Struts, Spring, Hibernate相关面试题的总结,各个框架使用原理

    《冬眠的力量-Hibernate 持久化技术详解》

    《冬眠的力量-Hibernate 持久化技术详解》这本书是本人多年基于Hibernate的系统架构设计以及系统开发经验总结和对Hibernate原理的研究成果。 本书成书于2007年8月,一直作为本人目前就职公司的内部技术手册参考,...

    hibernate+spring+servlet+struts综合资料

    struts教案 servlet教案 spring笔记 strut工作原理图 Hibernate的乐观锁与悲观锁 等。综合资料,值。

    JAVA考试系统毕业设计论文

    2.5 Hibernate技术概述及工作原理 7 2.5.1 Hibernate技术概述 7 2.5.2 Hibernate工作原理 7 2.6 Tomcat应用服务器介绍 7 2.7 MySQL数据库介绍 7 2.7.1 数据库的历史和发展 7 2.7.2 MySQL介绍 7 2.7.3 MySQL的主要...

    基于JAVA的购物网站(毕业论文)

    2.6.3 Hibernate的工作原理 12 2.7 Mysql 14 2.7.1 mysql的特点 14 2.7.2 mysql的安装和配置(部分截图) 14 2.8 Tomcat服务器 16 2.8.1 Tomcat 服务器简介 16 2.8.2 Tomcat的特点 16 2.8.3 Tomcat的优势 17 2.8.4 ...

    java学习经验总结

    java学习经验总结,包含j2se,jsp,servlet ,struts,spring,hibernate等开源框架的使用以及原理

    Java语言基础下载

    Hibernate工作原理图 691 内容总结 693 独立实践 693 第三十五章: 映射继承关系 694 学习目标 694 域模型关系 695 继承关系树的每个具体类对应一个表 696 创建映射文件 696 操纵持久化对象 698 选择继承关系的映射...

    持久层框架ibatis学习笔记

    当然iBatis 还有一些更深层的原理与更强大的功 能,我没有去深思,学了iBatis 对以后学习其它持久层框架是有很多好吃的。希望看到我的 这篇学习笔记的同学们也一起学习iBatis。 这篇iBatis 学习笔记是跟着传智播客的...

    java从入门到精通70个PPT

    53 hibernate总结 54 使用Spring容器管理JavaBean 55 Spring 数据访问支持 56-59 项目实战:JBOA办公自动化管理系统 60 Spring配置优化 61 web service 62-65 项目实战:FaceLook 66 安全优化 67 Struts 1基础 68 ...

    J2EE学习笔记

    共享本人近几年学习工作总结文档。 J2EE学习笔录 2 第一章:JAVA的输入输出流 2 1.1:概述: 2 1.2:主要输入输出类 3 1.3例程 建立聊天室: 5 第二章:JAVA设计模式 18 2.1:创建型设计模式 19 2.2:结构型设计模式 32...

Global site tag (gtag.js) - Google Analytics