图书前言

OR Mapping对象关系映射技术是Java领域和.NET领域中面向对象编程中的一个重大技术进步,在Java领域中已经得到广泛的应用。Hibernate是目前Java领域中最受欢迎的OR映射开源框架,Hibernate技术的出现使得程序员可以摆脱JDBC编程编写繁琐SQL语句的麻烦,可以使得程序员能将更多的精力应用于业务逻辑的设计。

而Hibernate使用的对象关系映射技术所带来的性能问题受到业界的普遍怀疑,其使用的查询机制、持久化、对象关联等技术使得Hibernate的使用更加方便,但是同时由于   使用不当也会带来严重的性能瓶颈问题。在Hibernate刚出现时,其便利性和优越性得到很多项目架构人员的青睐,但也正是由于其性能和不可预知问题而使项目架构人员望而却步。

本书正是站在客观评价这门持久化技术的角度,来分析Hibernate的基本构成,知识点及实现原理,汇总业界及作者在Hibernate应用方面的实践经验,分清Hibernate的优势和劣势,及可代替的解决方案,展示Hibernate对象关系映射技术的实质,总结Hibernate在项目开发中的最佳实践经验。使得读者能掌握Hibernate的基本理论知识,带领读者进入Hibernate对象关系映射技术视野的同时,更进一步掌握Hibernate的特性,学会在项目中如何运用,做到有能力驾驭运用Hibernate这门出色的对象关系映射技术,能了解Hibernate的优势和劣势,做到扬长避短,而不是顶礼膜拜。

本书内容组织

本书基于Hibernate 3,以Hibernate的知识点为主线,由浅入深,从对象-关系映射基础知识,到Hibernate的上手;从对象映射配置、对象关系映射、集合映射、继承映射、对象操作、对象查询、事务、缓存、到Spring继承Hibernate,DAO透明持久化及Hibernate在Web应用中的实践和Hibernate的性能优化,知识点逐步深入。

在知识点讲解过程中使用恰当的实例进行举证,从实例的运行结果中分析验证理论,这种表达方式将非常有利于读者的阅读理解。另外,在讲解过程中,结合实践经验给出这些知识点的运用技巧和注意事项,融入各知识点的最佳实践经验,深入每一个知识点的应用,对读者可能会产生疑惑的内容做精辟讲解,并纳入业界最佳解决方案,给出在不同场合下如何使用的建议。

书中融入大量Hibernate业界最佳实践经验,给出二层架构及Web三层架构中的持久化实现方案以及Hibernate的性能调优,使得读者可以轻松驾驭Hibernate应用于自己的项目实践中。本书的目的就是使读者在了解Hibernate的基本知识点的同时,能合适地运用Hibernate技术于不同场景的项目,更好地应用这门数据库持久化技术。

本书主要特色

现在市面上已经有一些Hibernate相关的书籍,但是本书和它们相比,有如下不同  之处:

(1)本书以Hibernate 3最新版本为基础讲解,兼顾Hibernate 3的最新知识点,及  JDK5的特性,并在讲解过程中不断回顾Hibernate 2的知识点。本书既适用于基于Hibernate 3开发,也适用于基于Hibernate 2开发的读者使用。

(2)本书内容以最佳实践为线索指导组织内容,不是一路高歌Hibernate的好处,而是站在客观的角度来评价这门技术,对Hibernate各方面知识点的优势和劣势做出客观的评价,并汇集业界运用Hibernate的最佳实践经验,融入书中内容,给出不同场合下该如何使用的建议。

(3)本书在知识点讲述过程中,充分使用实例进行举证,书中内容均给出实例代码,并给出实例的运行结果,对结果进行充分的分析。通过这些恰当的举例,读者很容易理解这些知识点。

(4)本书内容覆盖范围广,本书内容囊括Hibernate,XDoclet,DAO,Spring,iBATIS等知识点。众所周知,Hibernate不是单独使用的,需要整合到其他项目中去,对于如何整合到两层应用模式或Web应用的三层模式中,本书给出了最佳实践的方案。

(5)Spring出现后,其提供的对Hibernate的操作支持使得Hibernate的使用更方便,在实际项目中已经大量使用Spring和Hibernate来结合使用,本书对于如何集成Spring和Hibernate做了充分的讲述

(6)本书知识点包含大量的业界使用Hibernate的最佳实践经验、Hibernate性能优  化、周边应用集成等知识,这些知识点,能充分指导读者将Hibernate更好地应用到项目开发中。

本书内容结构

本书内容主要分三部分,第一部分是对象关系映射技术的基本理论及Hibernate 对象映射技术的基本知识点,第二部分讲解Hibernate技术的查询和事务、缓存等高级性能,第三部分是Hibernate业界应用的最佳实践经验,包括如何使用Spring集成Hibernate,使用DAO模式透明化持久层设计,Hibernate在Web应用中的最佳实践和Hibernate性能优化和如何使用iBATIS等技术来替代Hibernate。主要内容介绍如下。

第1章  主要讲述对象-关系映射的基本理论知识,包括软件分层设计和软件设计模型,对象关系映射的概念和工具。

第2章  以一个实例介绍如何开发Hibernate,讲述开发环境的搭建,Hibernate的基本构成和操作,开发Hibernate的工具,Hibernate Tools插件的使用。

第3章  讲述映射文件的定义,映射文件的结构和生成,以及如何使用XDoclet生成映射文件。

第4章  讲述对象间的关联关系映射,一对一关联,一对多关联,关联关系的检索策略,组件映射和传播性持久化的操作,以及关联关系映射和操作的最佳实践建议。

第5章   讲述集合类映射,Java中的集合和Hibernate的集合关系,映射Map、Set、List、Bag的添加、删除、更新、查询操作和集合排序等集合映射操作的最佳实践建议。

第6章  讲述继承映射,Hibernate下的继承映射关系,类和子类的继承映射和表存储的关系,并给出继承映射的最佳实践建议。

第7章  讲述Hibernate如何操纵持久化对象,以及对象的生命周期、瞬时对象、持久对象、脱管对象间的关系,给出Session清理和Session的save、get、update、delete、saveOrUpdate的操作方法和实践建议。

第8章  讲述Hibernate查询,包括条件查询、使用NativeSQL查询和Hibernate查询的优化、迭代查询、多对象查询、统计查询、绑定参数查询、Hibernate过滤器、Hibernate分页等重要知识点。

第9章  讲述Hibernate的HQL查询语言,及HQL的语言特点、语法和查询构成,包括JOIN、查询分组、子查询、批量操作等。

第10章  讲述Hibernate事务和并发,包括事务边界的概念、JDBC中的事务、JTA的事务和Hibernate的事务、Hibernate的并发控制、悲观锁定和乐观锁定、怎样划分事务等最佳实践。

第11章  讲述Hibernate的缓存,包括缓存的原理,Hibernate的一级缓存、二级缓存,给出最佳实践,二级缓存和查询缓存的应用。缓存是一个比较难以操作的配置,本章给出精确控制缓存失效的策略,和建议用户大数据量处理时一定要及时清理缓存,并给出了使用第三方OSCache进行缓存的使用。

第12章  讲述通过Spring访问Hibernate,讲述了使用Hibernate的难度,进行会话管理的难度,并给出了Spring对Hibernate的支持,Spring事务管理策略,Spring编程式事务管理和Spring声明式事务管理。

第13章  讲述使用DAO进行透明持久化,给出了基于DAO模式的Hibernate设  计,DAO设计策略,并建议不要盲目使用DAO模式,也不要让应用局限于Hibernate。

第14章  讲述Web应用中的Hibernate,讲述了Hibernate在Web应用中的层次,如何将Struts结合Hibernate开发,如何使用Hibernate页面分页,如何优化Web应用中的Hibernate性能。

第15章  讲述Hibernate的性能优化措施,讲述了Hibernate性能优化方向,使用连接池和缓存优化,执行查询优化,优化批量操作,结合多种持久化策略,和如何使用iBATIS和JdbcTemplate的替代方案。

本书是否适合您

进行数据库开发是J2EE开发的主要任务,是所有J2EE开发程序员必须掌握的技能。而使用Hibernate作为数据库桥梁的持久化工具,是目前在J2EE领域中最受欢迎,最    成熟,使用人员最广的技术,掌握Hibernate这门技术是所有从事J2EE开发人员的必备功课。

如果您是刚进入J2EE领域的开发新手,对Hibernate还不太了解,阅读本书,可以使您少走很多弯路。Hibernate是优越的,但是并不是完美的。在没有任何Hibernate使用经验的情况下,如何做到扬长避短,将Hibernate最优越的地方使用在项目中,本书的最佳实践经验会帮助您解决这个问题。本书是以Hibernate的知识点来组织内容的,所以您不用担心本书无法入门,正是充分照顾了入门级的读者,做到内容由浅入深,从理论到实践。

如果您已经在开发Hibernate应用方面有着丰富的经验,则可以把本书作为您必备的参考书籍。本书融入了业界使用Hibernate的最佳实践经验,这些经验和使用的建议在书中的任意知识点均随处可见,可以成熟应用于实际项目开发中,本书正能帮助您解决令人棘手的Hibernate性能问题,Web集成问题和其他的查询等性能问题。本书囊括了Hibernate对象关联关系的最佳实践经验,查询的优化技巧,一级缓存和二级缓存的使用,事务隔离,Spring集成,DAO持久,Hibernate性能调优等内容,这些最佳实践技巧,将使您能更大胆地驾驭这门技术。

本书的所有知识点,讲解均使用了充分的实例进行举证,并对这些代码实例和运行结果给予了充分地讲解和分析,阅读这些实例代码,将更有利于读者理解这些知识和实践理论。建议读者在学习Hibernate技术的过程中,善于将理论与实践相结合,达到事半功倍的效果。

本书服务与致谢

本书光盘包括本书所有已经调试通过的范例源代码程序和所需要的Java包和类文件,并在书中给出了详细的代码文件路径。此外,光盘还附赠了Eclipse 3.2和MySQL 5.0的内容。

本书由创想科技组织策划,由阿里巴巴(中国)网络技术有限公司的资深工程师陶勇、李晓军主笔编写,除此之外,李振捷、温才燚、柯华坤、张琳、张湘华、黄青川、刘威、李晓军、张英男、刘春辉、徐建飞、颜志军、杨鲲鹏、李新峰、姚远、高喆、陈芳、缪勇等为本书的编写也提供了有益的帮助,在此表示衷心地感谢。对于书中内容及编排我们力求精益求精,但错误及疏忽之处在所难免,敬请广大读者批评指正。

编  者  

2007年3月