Hibernate介绍及Hibernate4新特性.ppt_第1页
Hibernate介绍及Hibernate4新特性.ppt_第2页
Hibernate介绍及Hibernate4新特性.ppt_第3页
Hibernate介绍及Hibernate4新特性.ppt_第4页
Hibernate介绍及Hibernate4新特性.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Hibernate介绍及Hibernate4新特性,-程同栓,什么是hibernate,1、历史与背景 2、hibernate定义 3、hibernate的作用 4、hibernate的应用 5、hibernate API简介 6、hibernate优缺点,1、历史与背景,a、应用程序的分层体系结构 随着计算机应用软件的发展,应用程序逐渐由单层体系结构发展为多层体系结构。其中,三层结构是目前典型的一种应用软件结构,如图1左。 表述层:提供与用户交互的界面,如GUI(图形用户界面),web页面等; 业务逻辑层:负责各种业务逻辑,直接访问数据库,提供对业务数据的保存、更新、删除和查询操作; 数据库

2、层:负责存放管理应用的持久性业务数据,1、历史与背景,1、历史与背景,b、持久化层(如图1右) (1)什么叫持久化? 持久(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的数据存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 (2)什么叫持久层? 持久层(Persistence Layer),即专注于实现数据持久化应用领域的某个特定系统的一个逻辑层面,将数据使用者和数据实体相关联。,1、历史与背景,(3)为什么要持久化?增加持久层的作用是什么? 数据库的读写是一个很耗费时间和资源的操作,当大量用户

3、同时直接访问数据库的时候,效率将非常低,如果将数据持久化就不需要每次从数据库读取数据,直接在内存中对数据进行操作,这样就节约了数据库资源,而且加快了系统的反映速度。增加持久化层提高了开发的效率,使软件的体系结构更加清晰,在代码编写和系统维护方面变得更容易。特别是在大型的应用里边,会更有利。同时,持久化层作为单独的一层,人们可以为这一层独立的开发一个软件包,让其实现将各种应用数据的持久化,并为上层提供服务。从而使得各个企业里做应用开发的开发人员,不必再来做数据持久化的底层实现工作,而是可以直接调用持久化层提供的API。,1、历史与背景,(4)目前持久化领域,实现模式有以下几种: A 业务逻辑和数

4、据访问耦合 B 主动域对象模式 C ORM模式 D JDO模式 E CMP模式,1、历史与背景,c、ORM介绍 ORM(Object Relational Mapping),即对象关系映射。指以O/R原理设计的持久化框架(Framework),包括 O/R机制、SQL自生成、事务处理和Cache管理等。 ORM的实现思想就是将关系数据库中表的数据映射成为对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。因此它的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。,1、历史与背景,常见的ORM中间件有: Apache OJB (http:/db.apach

5、/ojb/) Cayenne (/cayenne/) Jaxor () Hibernate () iBatis () jRelationalFramework () mirage (/en/oss/mirage/toon) SMYLE (http:/www.drjava.de/smyle) TopLink (,2、hibernate定义,Hibernate是一种Java语言下的对象关系映射解决方案。 它是一种自由、开源的软件。它用来把对象模型表示的对象映射到基于

6、SQL 的关系模型结构中去,为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。,3、hibernate作用,Hibernate 不仅管理Java 类到数据库表的映射(包括从Java数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间。 它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。,4、hibernate应用,Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随

7、心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB(Enterprise JavaBeans是Java应用于企业计算的框架)的J2EE架构中取代CMP,完成数据持久化的重任。,5、hibernate API简介,a、hibernate API中的接口可以分为一下几类: (1)提供访问数据库的操作的接口,包括session、Transaction、Query接口; (2)用于配置Hibernate的接口,Configu

8、ration; (3) 间接接口,使应用程序接受Hibernate内部发生的事件,并作出相关的回应,包括:Interceptor、Lifecycle、Validatable; (4)用于扩展Hibernate功能的接口,如UserType、CompositeUserType、IdentifierGenerator接口。,5、hibernate API简介,6、hibernate的优缺点,a、优点 (1)Hibernate 使用 Java 反射机制 而不是字节码增强程序来实现透明性。 (2)Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。 (3)它支持各种关系数据库,

9、从一对一到多对多的各种复杂关系。 b、缺点 Hibernate限制您所使用的对象模型。例如,一个持久性类不能映射到多个表。,hibernate新特性,hibernate4中的新特性,这里我先从代码上来区分一下它与hibernate3的一些改变,分别有: 1、数据库方言的设置 2、buildSessionFactory 3、annotation 4、事务,hibernateTemplate 5、自动建表,1、数据库方言的设置,org.hibernate.dialect.MySQL5Dialect 在3.3版本中连接MySQL数据库只需要指明MySQLDialect即可。在4.1版本中可以指出My

10、SQL5Dialect,2、buildSessionFactory,4.1版本中buildSessionFactory()已经被buildSessionFactory(ServiceRegistry ServiceRegistry)取代 解决办法: Configuration cfg = new Configuration(); ServiceRegistry serviceRegistry =new ServiceRegistryBuilder().applySettings(cfg.getProperties().buildServiceRegistry(); SessionFactory

11、 sf = cfg.configure().buildSessionFactory(serviceRegistry);,3、annotation,org.hibernate.cfg.AnnotationConfiguration; Deprecated. All functionality has been moved to Configuration 这个注解读取配置的class已经废弃,现在读取配置不需要特别注明是注解,直接用Configuration cfg = new Configuration();就可以读取注解。 Hibernate4.1版本中推荐使用annotation配置,所以

12、在引进jar包时把requested里面的包全部引进来就已经包含了annotation必须包了,4、事务,hibernateTemplate,hibernate4已经完全可以实现事务了 与spring3.1中的hibernatedao,hibernateTemplete等有冲突,所以spring3.1里已经不提供hibernatedaosupport,hibernateTemplete,5、自动建表,Hibernate4.1已经可以自动建表,所以开发时只需要自己开发类然后配置好就OK。不需要考虑怎么建表(并未测试),hibernate新特性,这里我们来看一下内部的一些新特性,功能的扩展和优化

13、1多租户架构支持 2引入了“Services”API 3提供了更棒的日志,支持i18n与消息编码(通过JBoss Logging而非slf4j) 4清理并删除了几处废弃代码,1、多租户构架支持,所谓多租户架构,就是将大型的企业应用划分为虚拟的多个客户端/客户(又叫做租户)而不必将所有数据放在一个共享空间中。该原则改进了管理、监控, 甚至是安全,对于大型的服务提供商来说非常有帮助。提供云基础设施的公司也会从多租户架构中获益颇丰。该原则有几种实现方式,列举如下: a、每个客户端/租户使用不同的数据库与/或模式 b、所有客户端使用相同的数据库/模式,但所有表中都有一个附加的列(比如说tenant_id),用于过滤数据,2、引入了“Services”API,Hibernate中新增的另一个重要特性就是“Services”API规范。除了标准的内建服务外,你还可以通过该API以其他几种方式扩展 Hibernate。现在已经有了几种方式可以插入到Hibernate内核中,但Service API则提供了一种标准方式来实现这一点。,3、提供了更棒的日志,支持i18n与消息编码(通过JBoss Logging而非slf4j),在日志中加入对i18n的支持。 JBoss Logging是唯一一个完整支持i18n(包括参数化)的日志库. J

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论