知识大全 关于Hibernate框架的简介

Posted 数据库

篇首语:观书散遗帙,探古穷至妙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 关于Hibernate框架的简介相关的知识,希望对你有一定的参考价值。

关于Hibernate框架的简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   应用程序的分层体系结构

  随着计算机应用软件的发展 应用程序逐渐由单层体系结构发展为多层体系结构 其中 三层结构是目前典型的一种应用软件结构 如图 左

  表述层 提供与用户交互的界面 如GUI(图形用户界面) web页面等

  业务逻辑层 负责各种业务逻辑 直接访问数据库 提供对业务数据的保存 更新 删除和查询操作

  数据库层 负责存放管理应用的持久性业务数据

  三层结构的特点是 所有下层向上层提供调用的接口 具体实现细节对上层透明 层与层之间存在自上而下的依赖关系 即上层会访问下层的API 但下层不依赖于上层  

      持久化层(如图 右)

  ( )什么叫持久化?

  在图 右中 分离出的持久化层封装了数据访问细节 为业务逻辑层提供了面向对象的API

  持久(Persistence) 即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘) 持久化的主要应用是将内存中的数据存储在关系型的数据库中 当然也可以存储在磁盘文件中 XML数据文件中等等

  ( )什么叫持久层?

  持久层(Persistence Layer) 即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面 将数据使用者和数据实体相关联

  ( )为什么要持久化?增加持久层的作用是什么?

  数据库的读写是一个很耗费时间和资源的操作 当大量用户同时直接访问数据库的时候 效率将非常低 如果将数据持久化就不需要每次从数据库读取数据 直接在内存中对数据进行操作 这样就节约了数据库资源 而且加快了系统的反映速度

  增加持久化层提高了开发的效率 使软件的体系结构更加清晰 在代码编写和系统维护方面变得更容易 特别是在大型的应用里边 会更有利 同时 持久化层作为单独的一层 人们可以为这一层独立的开发一个软件包 让其实现将各种应用数据的持久化 并为上层提供服务 从而使得各个企业里做应用开发的开发人员 不必再来做数据持久化的底层实现工作 而是可以直接调用持久化层提供的API

  ( )目前在持久化层领域 实现模式有以下几种

  A 业务逻辑和数据访问耦合

  B 主动域对象模式

  C ORM模式

  D JDO模式

  E CMP模式

   ORM介绍

  ORM(Object Relational Mapping) 即对象关系映射

  指以O/R原理设计的持久化框架(Framework) 包括 O/R机制 SQL自生成 事务处理和Cache管理等

  ORM的实现思想就是将关系数据库中表的数据映射成为对象 以对象的形式展现 这样开发人员就可以把对数据库的操作转化为对这些对象的操作 因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作

  常用的ORM中间件有

  Apache OJB ()

  Cayenne ()

  Jaxor ()

  Hibernate ()

  iBatis ()

  jRelationalFramework ()

  mirage ()

  SMYLE ()

  TopLink ()

  其中 Hibernate 的轻量级 ORM 模型逐步确立了在 Java ORM 架构中领导地位 甚至取代复杂而又繁琐的 EJB 模型而成为事实上的 Java ORM 工业标准 而且其中的许多设计均被 J EE 标准组织吸纳而成为最新 EJB 规范的标准

  二 Hibernate定义

  Hibernate是一种Java语言下的对象关系映射解决方案 它是一种自由 开源的软件 它用来把对象模型表示的对象映射到基于SQL 的关系模型结构中去 为面向对象的领域模型到传统的关系型数据库的映射 提供了一个使用方便的框架

  三 Hibernate的作用

  Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射) 还提供数据查询和获取数据的方法 可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间

  它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来 无论是从设计草案还是从一个遗留数据库开始 开发人员都可以采用Hibernate

  四 Hibernate的应用

  Hibernate对JDBC进行了非常轻量级的对象封装 使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 Hibernate可以应用在任何使用JDBC的场合 它既可以在Java的客户端程序使用 也可以在Servlet/JSP的Web应用中使用 最具革命意义的是 Hibernate可以在应用EJB(Enterprise JavaBeans是Java应用于企业计算的框架)的J EE架构中取代CMP 完成数据持久化的重任

  五 Hibernate API简介

   Hibernate API中的接口可以分为以下几类

  ( ) 提供访问数据库的操作的接口 包括session Transaction Query接口

  ( ) 用于配置Hibernate的接口 Configuration

  ( ) 间接接口 使应用程序接受Hibernate内部发生的事件 并作出相关的回应 包括 Interceptor Lifecycle Validatable

  ( ) 用于扩展Hibernate功能的接口 如UserType CompositeUserType IdentifierGenerator接口

  Hibernate内部还封装了JDBC JTA(Java Transaction API)和JNDI(Java Naming And Directory Interface) 其中 JDBC提供底层的数据访问操作 只要用户提供了相应的JDBC驱动程序 Hibernate可以访问任何一个数据库系统 JTA和JNDI使Hibernate能够和J EE应用服务器集成

      Hibernate的核心接口框图

  六   Hibernate的优缺点

  ( )优点

  a Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性 b Hibernate 的性能非常好 因为它是个轻量级框架 映射的灵活性很出色 c 它支持各种关系数据库 从一对一到多对多的各种复杂关系

  ( )缺点

cha138/Article/program/Java/ky/201311/28756

相关参考

知识大全 关于OJB和Hibernate框架的评议

关于OJB和Hibernate框架的评议  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  OJB和

知识大全 关于Hibernate开发框架中的各个包文件解释

关于Hibernate开发框架中的各个包文件解释  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 关于Struts框架简介

关于Struts框架简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!(一)个人整理Struts框

知识大全 浅谈Hibernate框架简述

浅谈Hibernate框架简述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在基于MVC设计模

知识大全 基于hibernate的开源通用查询框架-bba96

  bba框架当前版本包含  bbacore核心框架封装HibernateCriteria提供方便的查询以及分页支持查询参数  bbastruts基于Struts的开发框架依赖core提供便捷的CRU

知识大全 开源框架Hibernate3的新特性以及发展趋势

开源框架Hibernate3的新特性以及发展趋势  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 有关ssh框架的面试题 — ibatis与hibernate有什么区别

iBatis的sql语句需要自己手动写而Hibernate能够在程序运行时自动生成但是不要就这样以为Hibernate比iBatis方便其实二者熟悉之后的效率差不多而Hibernate还能够自动建表等

知识大全 开发框架 hibernate3.0 开发实例

  建议是有一点点是一点点基础的人又没有hibernate基础和经验的人比较适合(所谓一点点基础是最起码不要我介绍一些配置文件的什么的)注意我用的JDBC驱动inettdsTdsDriver    大

知识大全 高级java工程师-------hibernate的作用和关键点

  一在ssh框架中hibernate的作用是什么呢?  hibernate是一种ORM(对象映射)框架的持久性框架它是对JDBC做了轻量级的封装使得程序员可以面向对象思维的对数据库进行操作  支持各

知识大全 Hibernate简介

Hibernate简介  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Hibernate是一个开