- 定价:¥55.00
- 评分:
(已有12条评价)
- 电子书:精通Hibernate[图书]
基本信息
- 原书名:Harnessing Hibernate
- 原出版社: O'Reilly Media, Inc.
- 作者: (美)James Elliott Ryan Fowler
- 译者: 刘平利
- 丛书名: 北京华章图文信息有限公司O'Reilly系列
- 出版社:机械工业出版社
- ISBN:9787111264873
- 上架时间:2009-5-21
- 出版日期:2009 年4月
- 开本:16开
- 页码:328
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Hibernate
教材 > 教材汇编分册 > 高等理工

编辑推荐
本书是Java程序员处理关系数据库的理想指南,有助于简化信息的处理、提高效率。数据库与Java对象大不相同,需要开发人员具备不同的处理技巧和专业知识。i而jHibernate就是连接这两个世界的方便的桥梁。
本书将带领你快速学Hibernate。它不是一本简单的APl参考手册,而是系统地讲解了各方面的知识,从Hibernate的下载和配置开始,到通过一系列的示例项目演示如何完成多种从简单到复杂的任务。
本书也提供了更为精细而全面的Hibernate主要功能的指导,包括,从.Java类到数据库表的映射,以及从Java数据类型到sQL数据类型的映射。还可以从本书中学到Hibernate的数据查询和检索等功能。通过【翊读示例,并动手操作,不但可以快速创建好你自己的Hibernate开发环境,还可以马上着手完成很多实际的任务。
本书可以让你学会:
· 执行对象/关系映射。
· 在Java代码中处理数据持久化。
· 处理对象之间的组和关系。
·Hibernate对自定义扩展类型的支持。
· 使用Criteria来简化查询的创建。
·Hibernate Query Language(HQL)的使用,以及它与SQL的区别。
· 在Sprin9中使用Hibernate。
· 在其他开发工具中使用Hibernate,例如Stripes Web框架和Eclipse IDE。
只需要学习最初的几章,你就可以直接跳转到感兴趣或与你工作相关的部分。所有的背景知识,以及Hibernate的工作原理都在本书中有重点介绍和分析。书中的示例源代码可以从本书相关的网站下载。在开发程序中处理信息时,如果使用SQL总是让你感觉不顺手,那么本书为你传授了高效而简洁的“秘笈”。
内容简介
计算机书籍
本书是Java程序员处理关系数据库的理想指南,有助于简化信息的处理、提高效率,数据库与Java对象大不相同,需要开发人员具备不同的处理技巧和专业知识。而Hibernate就是连接这两个世界的方便的桥梁。.
本书将带领你快速学习Hibernate。它不是一本简单的API参考手册,而是系统地讲解了各方面的知识,从Hibernate的下载和配置开始,到通过一系列的示例项目演示如何完成多种从简单到复杂的任务。
本书也提供了更为精细而全面的Hibernate主要功能的指导,包括从Java类到数据库表的映射,以及从Java数据类型到SQL数据类型的映射。还可以从本书中学到Hibernate的数据查询和检索等功能。通过阅读示例,并动手操作,不但可以快速创建好你自己的Hibernate开发环境,还可以马上着手完成很多实际的任务。
本书可以让你学会:
·执行对象/关系映射。
·在Java代码中处理数据持久化。
·处理对象之间的组和关系。..
·Hibernate对自定义扩展类型的支持。
·使用Criteria来简化查询的创建。
·Hibernate Query Language(HQL)的使用,以及它与SQL的区别。
作译者
目录
第一部分 Hibernate快速入门
第1章 安装和设置
获得Ant发布版本
检查Java版本
获得MavenTasksforAnt
安装MavenTasksforAnt
使用HSQLDB数据库引擎
获得HibernateCore
建立项目层次结构
第2章 映射简介
编写映射文档
生成Java类
编制数据库Schema
第3章 驾驭Hibernate
配置Hibernate
创建持久化对象
检索持久化对象
建立查询的更好方法
第4章 集合与关联
译者序
如果直接使用最底层的JDBC来访问数据库,再在代码中夹杂上无数的SQL语句,以这样的方式来手工编写代码不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。关键是这样得到的最终产品往往与底层的数据库紧密地耦合在一起,如果要更换数据库,必须花费大量的人力资源。
优秀的面向对象开发人员厌倦了这种重复性劳动,他们开始采用通常的“积极”偷懒做法,即创建工具,使整个过程自动化。对于关系数据库来说,这种努力的最大成果就是对象/关系映射(ORM)工具,而Hibernate则是这些工具中的典型代表。
Hibernate是一个免费的开源Java包,它使得与关系数据库打交道变得十分轻松,就像数据库中包含的是普通Java对象一样,不必考虑如何把它们从神秘的数据库表中取出(或放回数据库表中)。Hibernate解放了广大Java程序开发人员,使他们可以专注于应用程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。
Hibernate之所以能够流行,应该归功于以下优点:
1)Hibernate是JDBC的轻量级对象封装,它是一个独立的对象持久层框架,与App Server、EJB没有什么必然的联系。Hibernate可以用在任何JDBC可以使用的场合。
2)Hibernate是一个和JDBC密切关联的框架,所以Hibernate的兼容性与JDBC驱动、数据库都有一定的关系,但是与使用它的Java程序、底层数据库没有任何关系,也不存在兼容性问题。
3)Eclipse等主流Java集成开发环境对Hibernate有很好的支持,在大型项目,特别是持久层关系映射很复杂的情况下,Hibernate效率非常高。..
为了让以前对Hibernate了解不多的Java爱好者快速掌握Hibernate的基本配置、使用方法、经验技巧,以及它与其他常用开发工具的协同配合,本书的作者由一个简单而现实的示例入手,从数据表的创建,讲到各种基于数据库的操作,甚至还创建了一个简洁的Web网站,内容涉及Hibernate的方方面面。讲解非常细致,不仅包括了足以帮助读者理解的源代码,而且对于每一操作步骤,作者都给出了详细的操作命令。相信读者在阅读和实践本书示例的过程中一定不会遇到太大的问题,而且能够以最短的时间来掌握Hibernate,这应该就是本书最可贵的价值所在了。
本书在结构上分为两大部分。前一部分主要介绍Hibernate框架自身的功能,后一部分则介绍Hibernate与其他IDE和开发工具的配合使用。所有讲解并非照本宣科式地照搬API文档和参考手册,而是时时处处渗透着作者在使用Hibernate过程中所领悟到的经验和体会,尤其是在讲解Hibernate的关联映射配置时,虽然我自诩已经使用Hibernate很多年了,但还是学到不少知识点,这些在API和参考手册中没有遇到和使用过。第二部分中介绍的各种开发工具也是成熟的Java开发人员不可或缺的利器,对它们的掌握和理解,是超越普通程序员的必经之路。
在翻译过程中,虽然我力求在忠于原文的基础上,尽可能从专业Java开发人员的角度来做到信、达、雅,但由于自身水平有限,必定会有诸多不足,希望各位读者不吝指教。
感谢华章公司陈冀康编辑的理解和支持;也感谢我的朋友孙凤萍、董彦奇、聂磊、高原等对本书翻译和校对工作的大力帮助。另外还要感谢我的家人,没有他们的支持也无法完成这本书的翻译。
最后,祝大家能够在阅读中享受技术进步带来的乐趣!...
刘平利
2008年12月1日
前言
那么,Hibernate到底神奇在哪里呢?所有非凡的应用程序(甚至许多平凡的应用程序)都需要存储和使用各种信息,也就都会涉及关系型数据库的使用。与Java对象世界不同,数据库通常要求使用者具备一定的技巧和专业知识。如何连通这两个世界曾经是一段时期内的一项重要任务,但这也是一件非常复杂而乏味的工作。
大多数人要事先写出一些非常繁琐的SQL语句,再将这些语句作为字符串嵌入到Java代码中,接着再使用JDBC(Java database connectivity)执行查询语句和处理结果。JDBC已经发展成为一个与数据库通信的、功能丰富且非常灵活的程序库,虽然现在基于这种方法还可以提供一些简化和改进的措施,但在Java中使用JDBC还相当繁琐。对于大量的数据处理,我们需要某种功能更强大的工具,将对数据库的查询从代码中分离出去,并以面向对象的方式将它们组件化,以简化对数据库的操作。
多年来,我自己开发的软件中就使用了这样的轻量级(甚至是超轻量级)对象/关系映射层功能组件。该组件最初起源于我的同事Eric Knapp为Lands'sEnd电子商务网站开发的Java数据库连接和查询池缓存系统。这个系统引入了外部SQL模板的思想,可以通过名称来访问模板,并有效地与运行时数据组合起来,以生成实际的数据库查询。只是它后来才支持在模板中增加一些简单的映射指令,将这些模板直接绑定到Java对象。
虽然它远不及像现在的Hibernate这样有强大的功能和系统,但这种方法在很多不同规模的项目和各种环境中已证实具有很大的价值。直到本书的第1版,我们一直都在使用这种方法,在为Cisco公司的CallManager平台建立IP电话应用程序时,我们最后采用了这种方法。不过,现在再做新项目时,我们会改用Hibernate。在学习完本书以后,你会明白为什么要做这样的选择,而且也可能会做出同样的决定。Hibernate会为你做很多事情,简单到让你几乎忘记是在处理数据库。需要什么对象,就直接拿来使用即可。这就是这种技术的优点和使用方式。
你可能会问,Hibernate和Enterprise JavaBeans(EJB)有什么关系?它们是彼此竞争的技术吗?在什么情况下应该使用哪种?事实上,你可以同时使用这两种技术。但是并非每个应用程序都需要EJB的复杂性,多数应用程序只需要使用Hibernate直接与数据库交互,就足够了。另一方面,对于非常复杂的三层(three-tier)应用程序环境而言,EJB有时是不可或缺的。在这种情况下,EJB Session bean可以使用Hibernate来持久保存数据,或者也可以用于持久化BMP实体bean。
事实上,EJB委员会深受Hibernate的影响,最终接受了Hibernate的“plain old Java objects”(POJO)的方式来进行持久化处理,这是一种功能强大、使用方便的持久化方式,并在EJB 3中引入了Java Persistence Architecture(JPA)(可以脱离EJB环境使用)。Hibernate 3其实也以一种完全可移植的方式实现了JPA(不过,在第7章中可以看到,你可能仍旧希望使用Hibernate的JPA扩展)。
Hibernate的开发很明显已经成为Java和关系型数据库交互的分水岭事件。Java界应该感谢Hibernate之父Gavin King和他的团队所做出的贡献,让我们的开发更加简单些吧。这本书就是要帮助你尽快地掌握这项技术。
本书怎么使用
本书最初是O'Reilly的Developer's Notebook系列的一部分,可帮助读者快速掌握有用的最新技术。虽然本书扩展了很多Hibernate用户可能想要了解的技术,但本书不打算成为Hibernate的完整参考手册。本书反映了作者对该系统研究的成果,从最初的下载,到项目的配置,通过一系列项目演示了如何完成各种实践目标。
阅读示例并实践一下,你不但能够快速地搭建好Hibernate环境,并且可以立即将它用于实际项目的开发。这就好像你“跟着我”走过我绘制的一片领地,沿途中,我会指出有用的路标和危险的陷阱。
虽然我一定会介绍一些背景知识,解释Hibernate的工作原理和原因,但这总是针对某项任务。有时,我会建议你参阅一些参考文档或其他在线资源,以便深入了解一些底层的概念或其他Hibernate使用方式的相关细节。
在读过前面几章之后,就不需要按照章节顺序依次阅读了,可以直接跳转到你特别感兴趣或关注的主题。你可以自己构建示例代码,也可以从本书的网站下载完整的源代码(可以在前一章示例代码的基础上,按照当前章节的说明,自己动手修改代码,来实现正在阅读的代码示例)。如果你正在学习的示例和前面的示例有关,同时你也有兴趣了解,则可以随时跳转到先前的示例。
本书排版字体约定
本书的字体有特定的约定,提前了解这些约定将有助于你对本书的理解。
斜体(Italic)
用于文件名、文件扩展名、URL、应用程序名称、强调以及第一次引入的新术语。
等宽字(Constant width)
用于Java类的名称、方法、变量、属性、数据类型、数据库元素以及以文本方式出现的代码片段。
等宽黑体字(Constant width bold)