本书用典型的示例剖析Hibernate开发中的重点和难点,对于开发Hibernate的常用工具也进行了详细讲解。全书分两篇,共21章,内容涵盖Hibernate概述、Session主要的API、Hibernate对象关联(一对一、一对多、多对一和多对多)、级联关系、HQL与QBC检索、检索策略、基本配置与对象/关系映射配置、集合映射、事务与Cache管理等Hibernate的知识,另外还对XML、JSP、MySQL、Ant、JUnit、Log4j、Struts、Spring及Middlegen-Hibernate、hbm2java、SchemaExport、Hibernate-extensions控制台、XDoclet、P6Spy、HibernateSynchronize等开发Hibenrate时常用的工具进行了抓取重点和常用点的讲解。本书最大的特色在于每一节的例子都是经过精挑细选,具有很强的针对性,力求让读者通过亲自动手做来掌握其底层的知识,示例的运行也很简单,只需配置和运行Ant即可。\r\n 本书适合Java程序员、企业级项目的开发人员参考使用,同时也是新手学习Hibernate的绝佳教材。
第1篇 Hibernate技术\r\n 第1章 对象持久化\r\n 第2章 开始Hibernate之旅\r\n 第3章 Hibernate基础\r\n 第4章 操纵实体对象\r\n 第5章 使用关联关系操纵对象\r\n 第6章 Hibernate数据查询\r\n 第7章 XML基础\r\n 第8章 Hibernate配置\r\n 第9章 对象—关系映射配置\r\n 第10章 集合映射\r\n 第11章 Hibernate事务与Cache管理\r\n第2篇 Hibernate与其他工具整合应用\r\n 第12章 JSP技术的应用\r\n 第13章 MySQL入门及Hibernate整合\r\n 第14章 Tomcat应用及Hibernate整合\r\n 第15章 Ant基本应用及与Hibernate整合\r\n 第16章 JUnit基本应用\r\n 第17章 Log4j的基本应用\r\n 第18章 Struts入门及与Hibernate整合\r\n 第19章 Spring基本应用及与Hibernate的整合 \r\n 第20章 Hibernate常用工具的使用 \r\n 第21章 Hibernate+Struts+Spring的结合应用
蔡雪焘,北京科技大学材料工程与清华大学软件工程双学士学位。曾在北京长城软件公司、昆明金沙数据与设备公司、云南电力实验研究院等处担任软件开发、架构设计、技术管理等工作。带领私人团体独立开发多种软件产品。目前在云南电力实验研究院从事一个即将历时三年的大型电网管理系统的设计与开发。
4年前,笔者参与开发了至今为止笔者的最后一个ASP项目:《腐蚀形貌图形库》,之后由于种种原因,笔者转入了Java程序员的行列。那个时候做网站很流行,因此笔者主要工作于J2EE领域。事实上不管是B/S结构还是C/S结构,项目做大了都无一例外地离不开数据库。虽然JDBC对数据库的操作已经非常好了,除了编写SQL语句和将来的维护比较麻烦以外,没什么大的缺点。但是熟练和高效地使用JDBC却不是每个程序员很容易就能做到的,并且使用JDBC的话,程序员需要了解太多的底层数据信息,如表结构、字段等。当项目比较大时,相信读者都会有这种感觉:JDBC到处建立连接,或者把长串的SQL语句写死在程序中,使得修改或者移植项目很不方便。
在那一段时间里的工作比较苦闷,因为遇到的难题经常不是项日最后应该实现的业务逻辑,而是底层的一些JDBC处理,例如某张表有20字段,若仝写进PrepareStatement语句里,则源代码看上去是整篇的单引号和双引号,当需要修改和维护时就很困难。于是打算自己写一个基于JDBC的上一层的程序,所有的访问都通过这个程序转换为JDBC的代码来访问数据库。在摸索的过程中发现了Hibernate。Hibernate的采用确实给开发工作带来了十分大的改观,所有的对数据库的操作变成了对一些实体对象的操作,这完全符合面向对象的思想,而且它在很大程度上把程序员从繁重的编码工作中解放了出来。程序员面对的不是JDBC API,而是简单得多的Hibnerate API。对实体类的操作将被持久化到数据库中,而这个持久化过程是如何实现的,程序员无需了解,甚至底层数据库是什么、表是什么也无需了解,只要底层的设计人员知道即可。而这些对于上层的开发编码人员可以是透明的。
在实际应用开发中,Hibernate并非单兵作战,而且也只有把Hibernate和其他工具整合起来使用,才能最大限度地发挥Hibernate的威力。目前,Internet对Hibernate技术的介绍不算少,但是对Hibernate周边工具的介绍却很少。
笔者长期从事Hibernate方面的开发工作,积累了一些经验。希望通过本书,将自己对Hibernate的理解以及一些Java社区的优秀开源软件介绍给大家,分享笔者的经验和知识。
为了帮助众多想学习Hibernate及其相关工具的读者,笔者精心编著了本书。本书依照读者实际学习使用的规律,首先介绍Hibernate的基本概念和基本操作,在读者掌握了这些基本概念和基本操作的基础上,然后才来讲解Hibernate的映射(因为不懂Hibernate的映射仍然能使用Hibernate),严格遵循由浅入深,循序渐进的原则。本书期望覆盖尽量多Hibernate开发中出现的问题,如果读者已经具备了Hibernate开发的一些技能,也可以依照需要,挑选一些章节(如Hibernate的周边工具)作为重点阅读对象,这样对高效使用Hibernate是大有帮助的。
本书在内容的编排和目录组织上都十分讲究,争取让读者能够快速掌握Hibernate开发的方方面面,例如第1章在讲解了整体结构的层次概念以后,立刻运行一个最为简单的例子,告诉读者如何从无到有运行一个Hibernate程序,让读者快速入门,掌握Hibernate开发的基本流程。另外,本书章节命名明确清晰,这样读者就可以立即知道每一节所要学习的知识。讲解具体知识时,在进行基本的使用方法讲解后,都会尽可能使用实例来进一步强化学习效果,这样保证读者的起步层次比较高,不断在阅读代码和自身实践的过程中提高开发水平。
和其他书籍相比,本书有何特点
1.实例经典,内容丰富
实例丰富是本书最为突出的特点。本书的实例设置充分考虑了读者学习的需求。笔者的写作理念只有一个,就是如何通过最简单的实例让读者学到内容的本质,少走弯路。本书通过精心设计的实例,将Hibernate的基本功能和操作技巧融入到范例中进行讲解,全面覆盖主键映射、关联关系映射、级联关系、检索策略、HQL及QBC、Hibenrate和周边工具的整合使用等所有重点内容。
2.运行实例非常简单
对于大部分不需要开启Web服务器的实例,读者可以直接进入配书光盘源码下的实例目录,运行ant命令即可查看实例运行后的控制台输出信息,并且在更改实例源代码后,仍然可以直接运行ant命令完成编译、导出数据库脚本、运行测试程序等任务,使得调试实例非常方便。
3.讲解通俗透彻,步骤详细
大部分实例的制作步骤都以通俗易懂的语言阐述,不相关的知识点尽量在示例中不出现,并穿插讲解和技巧文字,在阅读时就像听课一样详细而贴切。读者只需按照步骤操作,通过笔者对示例代码及示例输出结果的详细讲解,就可以学习到Hibernate的相关功能,并体会到一个例子学完,好像人会变得更充实的感觉。
4.完善的视频演示,易学易懂
为了方便读者完成各种软件和环境的配置,理解实例的操作步骤和意图,本书特意制作了大量的操作视频,既节约了篇幅,又方便了读者的学习和理解,可以说是两全其美,物超所值。
5.内容全面
书中介绍的XML、JSP、MySQL、Ant、JUnit、Log4j、Struts、Spring及Middlegen-Hibernate、hbm2iava、SchemaExport、Hibernate-extensions控制台、Xdoclet、P6SPY、HibemateSynchronize技术,每一样都是可以独当一面的技术,它们都可以和Hibernate结合使用。本书将这些技术的重点和常用点抽取出来进行讲解,如果读者对它们并不需要太深太全面的了解,那么本书的介绍已经能够满足读者要求。
6.网上答疑,与读者充分交互
笔者为本书开通了专用的Blog,网址是http://www.blogiava.net/caixuetao/,读者可以直接同笔者交流,共同学习和提高。另外,笔者为本书提供了专门的联系邮箱--cai x t@163.com,读者可以随时同笔者联系。
本书包括的内容
本书共包括21章内容,这2l章又可以分为两篇,第1篇讲解Hibernate的各种技术(第1~11章);第2篇围绕Hibernate的周边工具,详细介绍每一个工具与Hibernate的整合使用(第12~2l章)。
第l章首先就JDBC现存的一些实际问题,引入了Hibernate与ORM的概念,介绍了软件分层的思想。
第2章通过一个简单的例子,即通过Hibemate+Access+UltraEdit持久化一个Student实体,因为Access和UltraEdit都很常见,因此读者可以快速t手。
第3章讲解SessionFactory、Configuration和Session类的用法,以及对象的生存周期、对象关联关系、SQL语句基础和4种数据检索策略(立即检索、延迟加载、预先抓取和批量抓取)。其中,数据检索策略是本章重点。
第4章讲解在Hibernate中操纵实体对象的方法,包括Session和Query的主要API、get()和load()方法的使用,最后重点讲解了对象级联的使用。
第5章讲解对象之间3种关系的使用:一对一、多对一和一对多、多对多。一对一的关系分主键映射和外键映射两种情况给予讨论,多对一和一对多分单向和双向两种情况,并着重讲解inverse属性的用法。
第6章主要讲解在Hibemate中如何查询对象,分为HQL、QBC和本地SQL 3种情况,并对这3种情况的适用情况作出了讨论。
第7章为后面章节介绍的Hibernate实体映射打下基础,主要讲解了XML的基本知识,包括XML基本概念、XML文档、外部和内部DTD以及流行的DOM和SAX工具的使用。
第8章的内容比较简单,介绍了在受管和不受管环境中配置Hibernate数据源和事务。
第9章讲解Hibernate中的一个重点:对象一关系映射配置,包括类映射、属性映射、主键生成策略、组件映射、自定义数据类型以及继承关系的映射。
第10章介绍Hibernate关联关系映射中的集合映射,分为5个部分:Map、List、Set、Bag的映射以及集合的内存和数据库排序。
第ll章介绍Hibernate中一个重要的概念--事务的管理,包括事务的介绍、事务的隔离级别以及如何在Hibernate中使用JTA和JDBC事务,重点讲解了悲观锁定和乐观锁定的使用。同时,为了提高Hibernate运行性能,讲解了一级和二级Cache,以实例的方式介绍了在Hibernate中如何运用Ehcache。
第12章介绍JSP的概念及使用。考虑到读者可能只是对应用程序熟悉,而对Web程序不太了解,因此本章从JSP的入门开始讲解JSP的概念、语法、开发环境、常用技巧等。本章并不试图全面深入地讲解JSP,而在于让读者了解JSP的常规用法。
第13章介绍当前非常流行的MySQL数据库,从MySQL的下载和配置开始,详细讲解了字符界面和图形界面MySQL的用法,最后通过一个MySQL与Hibernate结合使用的实例以让读者对MySQL的用法理解更为深刻。
第14章介绍当前流行的Servlet容器Tomcat的使用,包括安装和配置Tomcat、在Tomcat中部署Web应用、配置数据源、配置Servlet过滤器
无封面