精通Hibernate:Java对象持久化技术详解(第2版) (孙卫琴畅销图书升级新版)(china-pub首发)
基本信息
编辑推荐
凝聚Java魅力,成就开发专家
看清Java万花筒的本质,从复杂的表象中寻找普遍的规律,深刻理解Java的核心思想
本书在第1版的基础上,并结合作者多年经验,将更新的理论知识,精心细致地介绍最新技术应用。
推荐阅读
内容简介回到顶部↑
hibernate是非常流行的对象-关系映射工具。本书详细介绍运用目前最成熟的hibernate 3.3版本进行java对象持久化的技术。hibernate是连接java对象模型和关系数据模型的桥梁,通过本书,读者不仅能掌握用hibernate工具对这两种模型进行映射的技术,还能获得设计与开发java对象模型和关系数据模型的先进经验。本书将帮助读者编写出具有合理的软件架构,以及好的运行性能和并发性能的实用hibernate应用。书中内容注重理论与实践相结合,列举大量具有典型性和实用价值的hibernate应用实例,并提供详细的开发和部署步骤。
随书配套光盘内容为本书所有范例源程序、本书涉及软件的最新版本的安装程序,以及由作者亲自制作的与本书配套的语音讲座。
本书无论对于java开发的新手还是行家来说,都是精通java对象持久化技术的必备实用手册。
随书配套光盘内容为本书所有范例源程序、本书涉及软件的最新版本的安装程序,以及由作者亲自制作的与本书配套的语音讲座。
本书无论对于java开发的新手还是行家来说,都是精通java对象持久化技术的必备实用手册。
作译者回到顶部↑
本书提供作译者介绍
孙卫琴:知名IT作家的,Java系列畅销书的作者。1997年毕业于上海交通大学,随后从事基于Java的软件开发工作,还从事Java方面的培训和咨询工作.2002年开始Java技术领域的创作,其作者深受读者欢迎。
代表作有:
《精通Hibernate:Java对象持久化技术详解(第2版)》2010-1-13
《Tomcat与Java Web开发技术详解(第2版)》2009
《Java网络编程精解》2007
《Java面向对象编程》2006
《精通Hibernate:Java对象持久化技术详解》2005
《精通Struts:基于MVC的Java Web设计与开发》20.. << 查看详细
代表作有:
《精通Hibernate:Java对象持久化技术详解(第2版)》2010-1-13
《Tomcat与Java Web开发技术详解(第2版)》2009
《Java网络编程精解》2007
《Java面向对象编程》2006
《精通Hibernate:Java对象持久化技术详解》2005
《精通Struts:基于MVC的Java Web设计与开发》20.. << 查看详细
目录回到顶部↑
第1章 java应用分层架构及软件模型 1
本章介绍软件的分层结构、关系数据模型和域模型等概念。hibernate位于持久化层,是域模型和关系数据模型之间的桥梁。
1.1 应用程序的分层体系结构 1
1.1.1 区分物理层和逻辑层 2
1.1.2 软件层的特征 3
1.1.3 软件分层的优点 4
1.1.4 软件分层的缺点 4
1.1.5 java应用的持久化层 5
1.2 软件的模型 6
1.2.1 概念模型 7
1.2.2 关系数据模型 8
1.2.3 域模型 10
1.2.4 域对象 10
1.2.5 域对象之间的关系 11
1.2.6 域对象的持久化概念 17
1.3 小结 19
1.4 思考题 19
第2章 java对象持久化技术概述 21
业务数据在内存中表现为实体域对象形式,而在关系数据库中表现为关系数据形式。数据访问代码负责把实体域对象持久化到关系数据库中。
2.1 直接通过jdbc api来持久化实体域对象 21
本章介绍软件的分层结构、关系数据模型和域模型等概念。hibernate位于持久化层,是域模型和关系数据模型之间的桥梁。
1.1 应用程序的分层体系结构 1
1.1.1 区分物理层和逻辑层 2
1.1.2 软件层的特征 3
1.1.3 软件分层的优点 4
1.1.4 软件分层的缺点 4
1.1.5 java应用的持久化层 5
1.2 软件的模型 6
1.2.1 概念模型 7
1.2.2 关系数据模型 8
1.2.3 域模型 10
1.2.4 域对象 10
1.2.5 域对象之间的关系 11
1.2.6 域对象的持久化概念 17
1.3 小结 19
1.4 思考题 19
第2章 java对象持久化技术概述 21
业务数据在内存中表现为实体域对象形式,而在关系数据库中表现为关系数据形式。数据访问代码负责把实体域对象持久化到关系数据库中。
2.1 直接通过jdbc api来持久化实体域对象 21
前言回到顶部↑
在如今的企业级应用开发环境中,面向对象的开发方法已成为主流。众所周知,对象只能存在于内存中,而内存不能永久保存数据。如果要永久保存对象的状态,需要进行对象的持久化,即把对象存储到专门的数据存储库中。目前,关系数据库仍然是使用最广泛的数据存储库。关系数据库中存放的是关系数据,它是非面向对象的。
对象和关系数据其实是业务实体的两种表现形式。业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,把对象持久化到关系数据库中,需要进行对象-关系的映射(Object/Relation Mapping,简称ORM),这是一项烦琐耗时的工作。
在实际应用中,除了需要把内存中的对象持久化到数据库外,还需要把数据库中的关系数据再重新加载到内存中,以满足用户查询业务数据的需求。频繁地访问数据库,会对应用的性能造成很大影响。为了降低访问数据库的频率,可以把需要经常被访问的业务数据存放在缓存中,并且通过特定的机制来保证缓存中的数据与数据库中的数据同步。
在Java领域,可以直接通过JDBC编程来访问数据库。JDBC可以说是访问关系数据库的最原始、最直接的方法。这种方式的优点是运行效率高,缺点是在Java程序代码中嵌入大量SQL语句,使得项目难以维护。在开发企业级应用时,可以通过JDBC编程来开发单独的持久化层,把数据库访问操作封装起来,提供简洁的API,供业务层统一调用。但是,如果关系数据模型非常复杂,那么直接通过JDBC编程来实现持久化层就需要有专业的知识。对于企业应用的开发人员,花费大量时间从头开发自己的持久化层不是很可行的。
幸运的是,目前在持久化层已经有好多种现成的持久化中间件可供选用,有些是商业性的,如TopLink;有些是非商业性的,如JDO和Hibernate。Hibernate是一个基于Java的开放源代码的持久化中间件,它对JDBC做了轻量级封装,不仅提供ORM映射服务,还提供数据查询和数据缓存功能,Java开发人员可以方便地通过Hibernate API来操纵数据库。
现在,越来越多的Java开发人员把Hibernate作为企业应用和关系数据库之间的中间件,以节省和对象持久化有关的30%的JDBC编程工作量。2005年,Hibernate作为优秀的类库和组件,荣获了第15届Jolt大奖。Hibernate之所以能够流行,归功于它的以下优势。
(1)它是开放源代码的,允许开发人员在需要的时候研究源代码,改写源代码,定制客户化功能。
(2)具有详细的参考文档。
(3)对JDBC仅做了轻量级封装,若有必要的话,用户还可以绕过Hibernate,直接访问JDBC API。
(4)具有可扩展性。
(5)使用方便,容易上手。
(6)Hibernate既适用于独立的Java程序,也适用于Java Web应用,而且还可在J2EE架构中取代CMP(Container-managered Persistence,由容器管理持久化),完成对象持久化的重任,Hibernate能集成到会话EJB和基于BMP的实体EJB中,BMP(Bean- managered Persistence)是指由实体EJB本身管理持久化。
(7)Hibernate可以和多种Web服务器、应用服务器良好集成,并且支持几乎所有流行的数据库服务器。
本书结合大量典型的实例,详细介绍运用目前最成熟的Hibernate 3.3版本进行Java对象持久化的技术。Hibernate是连接Java对象模型和关系数据模型的桥梁,通过本书,读者不仅能掌握用Hibernate工具对这两种模型进行映射的技术,还能获得设计与开发Java对象模型和关系数据模型的先进经验。
本书知识体系概览
本书的组织结构和主要内容
本书按照由浅入深、前后照应的顺序来安排内容,主要包含以下内容。
1.Hibernate入门(第1章、第2章和第3章)
第1章、第2章和第3章为入门篇。第1章和第2章概要介绍和Java对象持久化相关的各种技术,详细阐述中间件、Java对象的持久化、持久化层、数据访问细节、ORM、域模型和关系数据模型等概念。
第3章以一个Hibernate应用实例—helloapp应用为例,引导读者把握设计、开发和部署Hibernate应用的整体流程,理解Hibernate在分层的软件结构中所处的位置。
对象和关系数据其实是业务实体的两种表现形式。业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,把对象持久化到关系数据库中,需要进行对象-关系的映射(Object/Relation Mapping,简称ORM),这是一项烦琐耗时的工作。
在实际应用中,除了需要把内存中的对象持久化到数据库外,还需要把数据库中的关系数据再重新加载到内存中,以满足用户查询业务数据的需求。频繁地访问数据库,会对应用的性能造成很大影响。为了降低访问数据库的频率,可以把需要经常被访问的业务数据存放在缓存中,并且通过特定的机制来保证缓存中的数据与数据库中的数据同步。
在Java领域,可以直接通过JDBC编程来访问数据库。JDBC可以说是访问关系数据库的最原始、最直接的方法。这种方式的优点是运行效率高,缺点是在Java程序代码中嵌入大量SQL语句,使得项目难以维护。在开发企业级应用时,可以通过JDBC编程来开发单独的持久化层,把数据库访问操作封装起来,提供简洁的API,供业务层统一调用。但是,如果关系数据模型非常复杂,那么直接通过JDBC编程来实现持久化层就需要有专业的知识。对于企业应用的开发人员,花费大量时间从头开发自己的持久化层不是很可行的。
幸运的是,目前在持久化层已经有好多种现成的持久化中间件可供选用,有些是商业性的,如TopLink;有些是非商业性的,如JDO和Hibernate。Hibernate是一个基于Java的开放源代码的持久化中间件,它对JDBC做了轻量级封装,不仅提供ORM映射服务,还提供数据查询和数据缓存功能,Java开发人员可以方便地通过Hibernate API来操纵数据库。
现在,越来越多的Java开发人员把Hibernate作为企业应用和关系数据库之间的中间件,以节省和对象持久化有关的30%的JDBC编程工作量。2005年,Hibernate作为优秀的类库和组件,荣获了第15届Jolt大奖。Hibernate之所以能够流行,归功于它的以下优势。
(1)它是开放源代码的,允许开发人员在需要的时候研究源代码,改写源代码,定制客户化功能。
(2)具有详细的参考文档。
(3)对JDBC仅做了轻量级封装,若有必要的话,用户还可以绕过Hibernate,直接访问JDBC API。
(4)具有可扩展性。
(5)使用方便,容易上手。
(6)Hibernate既适用于独立的Java程序,也适用于Java Web应用,而且还可在J2EE架构中取代CMP(Container-managered Persistence,由容器管理持久化),完成对象持久化的重任,Hibernate能集成到会话EJB和基于BMP的实体EJB中,BMP(Bean- managered Persistence)是指由实体EJB本身管理持久化。
(7)Hibernate可以和多种Web服务器、应用服务器良好集成,并且支持几乎所有流行的数据库服务器。
本书结合大量典型的实例,详细介绍运用目前最成熟的Hibernate 3.3版本进行Java对象持久化的技术。Hibernate是连接Java对象模型和关系数据模型的桥梁,通过本书,读者不仅能掌握用Hibernate工具对这两种模型进行映射的技术,还能获得设计与开发Java对象模型和关系数据模型的先进经验。
本书知识体系概览
本书的组织结构和主要内容
本书按照由浅入深、前后照应的顺序来安排内容,主要包含以下内容。
1.Hibernate入门(第1章、第2章和第3章)
第1章、第2章和第3章为入门篇。第1章和第2章概要介绍和Java对象持久化相关的各种技术,详细阐述中间件、Java对象的持久化、持久化层、数据访问细节、ORM、域模型和关系数据模型等概念。
第3章以一个Hibernate应用实例—helloapp应用为例,引导读者把握设计、开发和部署Hibernate应用的整体流程,理解Hibernate在分层的软件结构中所处的位置。


点击看大图







加载中...
