1.在项目中使用Hibernate框架时,非常关键的一点就是要使用Hibernate的核心类和接口,即核心组件。Hibernate接口位于业务层和持久化层之间。Hibernate除核心组件外还有Hibernate配置文件(hibernate.cfg.xml或hibernate.properties)、映射文件(xxx.hbm.xml)和持久化类(PO)外。

2.下面开始介绍Hibernate的核心组件:

(1).Configuration类:Configuration类负责配置并启动Hibernate,创建SessionFactory对象。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。

(2).SessionFactory接口:SessionFactroy接口负责初始化Hibernate。它充当数据存储源的代理,并负责创建Session对象。这里用到了工厂模式。需要注意的SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就可以了,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
SessionFactroy产生Session 实例的工厂。

(3).Session接口:Session接口负责执行被持久化对象的操作,它有get( ),load( ),save( ),update( )和delete( )等方法用来对PO 进行加载、保存、更新及删除等操作。但需要注意的是Session对象是非线程安全的。同时,Hibernate的session不同于JSP应用中的HttpSession。这里当使用session这个术语时,其实指的是Hibernate中的session。

(4).Transaction接口:Transaction接口负责事务相关的操作,用来管理Hibernate事务,它的主要方法有commit()和rollback(),可以使用Session的beginTransaction()方法生成。它是可选的,开发人员也可以设计编写自己的底层事务处理代码。

(5).Query接口:Query接口负责执行各种数据库查询。它可以使用HQL语言,用来对PO进行查询操作。它可以使用Session的createQuery()方法生成。

(6).Hibernate的配置文件:Hibernate配置文件主要用来配置数据库连接参数,例如,数据库的驱动程序,URL,用户名和密码、数据库方言等。它有两种格式:hibernate.cfg.xml和hibernate.properties。
两者的配置内容基本相同,但前者比后者使用方便一些,例如,hibernate.cfg.xml 可以在其<mapping>子元素中定义用到的xxx.hbm.xml 映射文件列表,而使用hibernate.properties则需要在程序中以硬编码方式指明映射文件。在一般情况下,hibernate.cfg.xml 是Hibernate的默认配置文件。

(7).映射文件:映射文件(xxx.hbm.xml)用来把PO与数据库中的数据表、PO之间的关系与数据表之间的关系,以及PO的属性与表字段一一映射起来,它是Hibernate的核心文件。

(8).持久化对象:持久化对象(Persistent Objects,PO)可以是普通的JavaBean,惟一特殊的是它们与(仅一个)Session相关联。JavaBean在Hibernate中存在三种状态:临时状态(transient)、持久化状态(persistent)和脱管状态(detached)。当一个JavaBean对象在内存中孤立存在不与数据库中的数据有任何关联关系时,那么这个JavaBean对象就称为临时对象(Transient Object);当它与一个Session相关联时,就变成持久化对象(Persistent Object);在这个Session被关闭的同时,这个对象也会脱离持久化状态,变成脱管对象(Detached Object),可以被应用程序的任何层自由使用,例如,可用做与表示层打交道的数据传输对象(Data transfer Object)。

3.以上内容仅供大家学习参考,谢谢!



Hibernate的核心组件简单介绍相关推荐

  1. Hibernate依赖包简单介绍

    http://wqbi.itpub.net/post/2966/61574 很多书都没有怎么介绍Hibernate依赖的jar包,这篇文章算是说的比较全吧. Hibernate一共包括了23个jar包 ...

  2. 1.Hibernate框架核心组件 (转自冯岩)

    Hibernate框架核心组件 在Hibernate框架简述中,演示了一个简单的Hibernate应用,但并没有深入说明其中程序,在这篇中将比较详细的介绍一下Hibernate的核心组件. 首先最关键 ...

  3. hadoop简单介绍_Hadoop:简单介绍

    hadoop简单介绍 什么是Hadoop: Hadoop是用Java编写的框架,用于在大型商品硬件群集上运行应用程序,并具有类似于Google File System和MapReduce的功能 . H ...

  4. Hadoop:简单介绍

    什么是Hadoop: Hadoop是一种用Java编写的框架,用于在大型商品硬件集群上运行应用程序,并具有类似于Google File System和MapReduce的功能 . HDFS是高度容错的 ...

  5. 玩转人工智能(3)常用的大数据框架简单介绍

    时光不老,我们不散. 讲大数据框架前,简单的介绍下大数据的文化.信息时代人类社会的进步得益于分享和开源.大数据时代属于信息时代的第三代发展阶段(2001年到2011年可以认为是CT行业的黄金期,200 ...

  6. xml、json、url的一些简单介绍

    一:XML 和 JSON 的简单介绍 xml 和 json 都是程序和程序之间传送和交流数据的方式. 都是独立于 各种编程语言 而存在的. 早些时间 xml 用的非常多,后来 json 出现了,jso ...

  7. Hibernate快速入门+简单示例

    很多人说Hbiernate已经没人用了,市面上有太多可供选择的开源工具.诚然市面上有很多新技术,但是作为初学者,还是要踏踏实实从基础做起,而且Hbiernate有自己的应用场景. 上篇博文 我们介绍了 ...

  8. 1、hadoop3.1.4简单介绍及部署、简单验证

    Hadoop系列文章目录 1.hadoop3.1.4简单介绍及部署.简单验证 2.HDFS操作 - shell客户端 3.HDFS的使用(读写.上传.下载.遍历.查找文件.整个目录拷贝.只拷贝文件.列 ...

  9. JRainbow的简单介绍

    一.简单介绍 一个基于Spring+Hibernate+Struts2+Extjs4的企业级开发的Eclipse开源插件.主要用于快速开发,针对都是Java开发人员,只是为程序员节省部分时间.非傻瓜式 ...

最新文章

  1. 浅析Codewarrior、IAR和Keil MDK三大开发环境优缺点
  2. vue 打包体积过大 实现懒加载 ????
  3. BLE GAP广播(Advertising Packet)格式
  4. STM32之串口DMA例程
  5. Shell——变量详解及注意点
  6. 微软以75亿美元收购GitHub
  7. 学习java_java学习册之立FLAG
  8. spark分片个数的确定及Spark内存错误(GC error)的迂回解决方式
  9. Atitit 数据库结果集映射 ResultSetHandler 目录 1. 常见的四种配置ResultSetHandler 1 2. Dbutil 1 3. Mybatis 致敬 3 4. H
  10. 玻纤效应差分信号影响及处理方法,使用sigrity建模玻纤效应仿真
  11. 如何在PDF中添加图片(签名)
  12. ExoPlayer播放器剖析(七)ExoPlayer对音频时间戳的处理
  13. ABeam Insight (德硕)| Smart Conference ——让你的生意跨越语言障碍
  14. 中国移动家庭智能网关超级账号密码(广西桂林)
  15. teamviewer安装失败
  16. CAD批量画八边形风机基础平台
  17. Vue渲染器(一):渲染器的设计
  18. oracle 主键 唯一性,oracle 唯一索引,唯一约束,主键之间的联系
  19. 国家开发银行 续贷声明
  20. 2-10-分布式应用与集中式应用

热门文章

  1. 关于ElementUI中MessageBox弹框的取消键盘触发事件(enter,esc)关闭弹窗(执行事件)的解决方法...
  2. liferay 指定默认首页
  3. 软工总结暨团队成员自评(胡骏)
  4. Ajax--art-template + 调用天气接口
  5. .NET采集数据,放入数据库总结
  6. mysql-启动、关闭与重启
  7. Bootstrap报错:Bootstrap's JavaScript requires jQuery
  8. 日常((⊙_⊙)…)
  9. Android Weekly Notes Issue #230
  10. AndroidManifest.xml文件详解(receiver)