贯通Hibernate开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

前言

关系数据库无疑是现代数据库的主流和核心。如何更方便地对关系数据库中的数据进行应用层面的利用是如今的编程语言(包括Java)急需解决的问题。而Hibernate是一种强大的可提供对象-关系持久化和查询服务的中间件,它可以使你依据面向对象的原理开发持久化类,实现对象之间的关联、继承、多态、组合、集合等。Hibernate提供了它特有的数据库查询语言HQL,这种查询语言屏蔽了不同数据库之间的差别,使您可以编写统一的查询语句执行查询。

Hibernate版本更新速度很快,但总起来说到目前为止有两个阶段性的版本:Hibernate 2和Hibernate 3。Hibernate 2系列的最高版本是Hibernate 2.1.8,Hibernate 3系列在编写本书时的最高版本是Hibernate 3.2.3 GA版,GA也就是General Availability,即推荐广泛使用的版本,但目前使用较多且较稳定的版本是Hibernate 3.1.2。所以本书所有功能和程序依据Hibernate 3.1.2进行。

本书知识体系

图1 本书的知识体系

本书内容遵循循序渐进的原则,逐步深入,致力于培养一名技术娴熟、能上手开发的Hibernate程序员。所以,从章来看,由浅入深,一步步深入介绍Hibernate;从章内的节来看,强调前期专家知识导学,过程中的内容详解和例题程序演示,后勤的课程作业巩固,力求使读者能深入扎实地学习Hibernate。

本书内容介绍

本书共分5篇15章。其中第1篇“Hibernate入门”包括第1章和第2章。第1章首先从对象持久化讲起,引导大家明确什么是对象关系映射,对象关系映射有什么重要的作用,是Hibernate学习前的知识准备章节。第2章主要了解一下Hibernate的发展历史、产品情况、主要接口,以及技术趋势,使读者对这项技术的背景有一个简单的了解。

第2篇“Hibernate开发快速上手”包括第3章和第4章。第3章主要讲解的是用Eclipse进行Hibernate应用开发时如何搭建开发环境,以及Hibernate的安装与配置。第4章主要通过一个最简单的Hello World程序,我们来简单了解Hibernate的运行机制,使读者对Hibernate有一个初步的概念认识。

第3篇“Hibernate应用开发”包括第5章、第6章、第7章、第8章、第9章、第10章、第11章和第12章。第5章详细介绍了Hibernate的映射文件的定义以及Hibernate的基本映射类型和用户自定义映射类型,目的是使读者对Hibernate映射文件这一Hibernate的核心基础文件尽数理解和掌握。

第6章将在回顾持久化类的概念的基础上,重点讲解持久化类的实例——持久化对象(或者更精确地讲是Hibernate对象,因为持久化类的实例并非都处于持久化状态)的状态和Hibernate的缓存机制,目的是使读者能够了解和掌握Hibernate的运行机制,从而为以后各章的学习奠定基础。

第7章主要介绍集合类映射,这是下一章进行关联关系映射学习的基础,在关联关系映射中,用来映射多对一、多对多关系时,都需要用到集合类映射的知识。第8章将首先从数据库和类的角度介绍实体或类之间的关联关系,然后基于这样的基础,来详细介绍单向以及双向的“多对一”、“一对一”、“多对多”关联。

第9章首先介绍了在数据库设计过程中如何定义实体之间的继承关系,在此基础上详细讲解了Hibernate映射继承关系的三种策略并进行了对比。第10章将讲解如何将组件、组件集合、作为联合主键的组件映射到关系数据库中。

第11章主要介绍了HQL查询语言的使用,重点讲解了select子句、from子句、where子句、order by子句、group by子句、子查询、批量的update和delete的使用。这一章旨在让初学者掌握HQL查询语言,了解HQL与SQL的区别。学习完本章后,应当对HQL查询语言有所了解,并且能够正确熟练地书写HQL语句。

第12章介绍了数据库事务、事务隔离级别、悲观锁和乐观锁的概念,并且介绍了在应用程序中声明事务边界、设置数据库的事务隔离级别以及运用悲观锁和乐观锁的方法。

第4篇“Hibernate框架集成”包括第13章和第14章。第13章简单介绍Hibernate框架与Struts以及StrutsMenu等框架或工具的集成,通过这样的集成,我们可以更好地发挥Hibernate的作用,同时也可以吸取其他框架的优秀元素,在此基础上根据需要搭建我们自己的开发框架。第14章将对Spring框架进行简要介绍,然后给出Hibernate框架和Spring框架的集成策略,并结合Struts 2给出集成的实例。

第5篇“项目实战”为第15章。第15章将基于Hibernate与Struts框架讲解一个科研项目管理系统的综合实例,该系统基于B/S架构,实现对两类科研项目的内容以及成员的增加、修改、删除以及查询等操作。

技术支持

希赛是中国领先的互联网技术和IT教育公司,在互联网服务、图书出版、人才培养方面,希赛始终保持IT业界的领先地位。希赛对国家信息化建设和软件产业化发展具有强烈的使命感,利用希赛网(www.csai.cn)强大的平台优势,加强与促进IT人士之间的信息交流和共享,实现IT价值。“希赛,影响IT”是全体希赛人不懈努力和追求的目标!

希赛网以希赛顾问团为技术依托,是中国最大的IT资源平台。希赛IT教育研发中心是希赛公司属下的一个专门从事IT教育、教育产品开发、教育书籍编写的部门,在IT教育方面具有极高的权威性。在国家权威机构发布的《计算机图书出版市场综述》中,称赞希赛丛书为读者所称道,希赛的图书已经形成品牌,在读者心目中具有良好的形象。

本书由李刚、郭莹、薛大龙等编著,第9、10、12、13、15章由希赛顾问团顾问、山东省计算中心高级工程师李刚编写;第5、6、7、8章由山东省计算中心郭莹高级工程师编写;第1、2章由薛大龙高级工程师编写;第3、11章由山东轻工业学院张晓燕讲师编写;第4章由山东省计算中心张立东工程师编写;第14章由山东省计算中心王明杰工程师编写。全书由李刚统稿,薛大龙核稿。张友生、邓子云、唐平、王勇、梁赛、周泉、米安然、王冀、顿海丽、谢顺、唐强、黄婧、张爱民、周进、周玲、黄豪、左南、彭欢、文梅、张小英等参与了本书的部分编写工作,以及进行了本书的统稿、编辑、审核、以及源代码的调试工作。借此,还向同济大学的冯家麟和山东省计算中心的杨萍致谢,他们参与了本书的部分代码调试工作。

由于时间仓促和作者的水平有限,书中的错误和不妥之处在所难免,敬请读者批评指正。有关本书的意见反馈和咨询,读者可在希赛网社区(http://bbs.csai.cn)“书评在线”中与作者进行交流。

本书配套光盘中的内容,读者也可以在希赛网下载中心(http://data.csai.cn)下载。

李刚

2008年4月于济南