管理持久化数据已经成为我们项目中一项核心的工作。对于java程序来说,如果管理持久化数据已经不是一个什么新颖的话题,通常你会期望能够有一种简单的通用的持久化解决方案。考虑到web框架(struts和webwork),图形化框架(Swing和SWT)以及模板引擎(JSP和Velocity)。每一种工具都有其优点和劣势,但是至少它们提供了一些解决问题的方法。不幸的是,现在还没有解决持久化的案例,我们只能看到一些对于同样问题的不同解决方法。
持久化成为java社团的热门话题已经有很长一段时间了。许多开发人员甚至并不认同这种问题的存在。他们总是会说,持久化不是已经被关系型技术例如存储过程解决了吗?或者说那是属于某种java组件的问题,例如EJB。难道我们只能手写那些最基本的CRUD吗,难道我们不能把这类工作自动化么?如果可以的话,面对形形色色的数据库我们怎么能实现这样的自动化呢?还是说我们必须得使用一种新的数据库技术,例如面向对象的数据库。虽然争论仍在继续,但是最近出现了一种OR映射的技术来满足这种需求。Hibernate是一种开源的ORM实现。
Hibernate项目致力于能够完全解决Java中的管理持久化数据的问题。它是应用程序和数据库之间的中间层,它可以使程序员专注于业务逻辑。Hibernate并不是一种侵入式的解决方案。这意味着你当你写的业务逻辑或者持久化编码的时候,不需要遵守任何的关于Hibernate的规范或者设计模式。Hibernate可以和现行程序很好的结合在一起,甚至不需要其他程序做太大的改动就能进行很好的融合。
这是一本关于Hibernate的书。我们覆盖了Hibernate从基本到高级的主题,同时我们也会推荐一些使用Hibernate的方法。当然这种推荐并不一定只是针对Hibernate的,它们同时也是处理持久化问题的很好的解决方案,只不过这些推荐的方法是放在Hibernate这个框架里面来讲罢了。在我们开始之前,你还需要了解对象持久化以及对象持久化映射的核心问题。这一章将告诉你为什么我们需要像Hibernate这样的工具。
首先,我们把持久化数据的管理定义在面向对象的程序中,同时我们也会讨论SQL,JDBC和JAVA之间的关系,Hibernate是构建于这些技术之上的。接着我们将讨论OR的不匹配以及在使用关系数据库的面向对象的开发过程中经常遇到的问题。当这些问题的数量不断膨胀的时候,很明显我们需要一种工具或者模式来最小化这种在处理持久化代码中所遇到的问题。与一些其他的解决方案相比,ORM似乎是目前一种能够解决大多数问题的方案。关于ORM优势的讨论将会给你的项目提供一种可选的方案。
通常最好的学习方法并不是直线的方式。我能够理解你希望马上能够用Hibernate开发的心情,如果这样,你可以直接跳到2.1。你无需阅读第一章就可以完全从第二章开始,但是我还是建议能够从头开始。这样的话,你就理解后面所讲的东西的深层概念了。

本书全面介绍Hibernate ORM技术,从基本概念到高级应用一应俱全。不仅深入探讨了Hibernate如何简化Java程序中的数据持久化问题,还提供了实际应用场景下的最佳实践。

被折叠的 条评论
为什么被折叠?



