首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

译 者 序

现在回想起来,自己最早接触数据库相关技术应当可以追溯到12年前,也就是我在大学里开始自学dBASE编程的时候。当时,我一次次地溜进企管系正在进行会计电算化试验的学校机房,翻开自己的笔记本,一行行地敲入程序,然后运行,输入生成表单所要求的数据后,再显示。看到屏幕上显示着一行行不停地滚动的数据,我心中一阵狂喜,感觉这一切是那么地神奇、有趣!

时至今日,无论是因特网应用程序还是企业应用系统,大多数都少不了数据库系统。关系数据库是现代企业的核心,真可谓“无数据库不成应用”。在Java的阵营里,JDBC是数据库操作最基本的API,但JDBC有它的不足之处,如工作量大,不易于重构,等等。Java开发人员之所以觉得难以使用JDBC API,是因为它只是数据库系统之上的一个薄层,只实现通信协议,所有与数据库交互的其他方面都必须由开发人员来承担。而且关系型系统中数据的表格表示法与用于Java应用程序的面向对象方式之间也存在本质上的不匹配,大大影响了Java应用程序的开发效率。于是,Hibernate应运而生。它通过ORM方法,在关系型数据和Java对象之间架起了桥梁,以一种非常实际、直接并且现实的方式很好地解决了对象/关系不匹配的问题。

虽然ORM工具为开发人员承担了95%的对象持久化工作,但是它并不是所有持久化任务的一颗银弹。你应当学会如何为充分利用ORM工具、为自己提高效率而进行相应的抉择,也应当能够充分地认识到它所带来的影响,以及何时需要和不需要它。

本书的作者是开发Hibernate项目的核心人员,他们所提供的见解是最前沿、最直接的。毋庸置疑,本书是Hibernate方面的权威之作,它展示了用Java的面向对象世界映射现实世界的范式,提供了对ORM深层问题和Hibernate背后设计选择的深刻见解,可以让读者对ORM作为一种企业技术的有效应用有深刻的理解。它比较适合中高级水平的读者,当然也适合刚准备进入ORM领域的读者,但是他们至少需要具备面向对象软件开发的基础知识和实践经验,并且熟悉Java编程语言和UML以及数据库的基本知识。

本书的前三章对想要利用Hibernate迅速创建应用程序的开发人员来说是不可或缺的,同时它们对于真正想要理解Hibernate概念、框架、方法以及形成框架设计的原因的人来说也显得尤为重要。

如果你知道Session.get()与Session.load()的区别,了解Hibernate的save()方法与JPA的persist()的区别,并且知道JPA没有Hibernate Session API所提供的evict(object)方法来剔除单个持久化实例的话,那就可以从任一部分开始阅读。

对于老用户来说,如果你想了解Hibernate 3.x与Hibernate 2.x有何不同,可以认真看看Hibernate 3到底在内核持久化引擎上面做了哪些改动。比如,新内核引擎基于一个事件/监听器的模型,如果Hibernate需要保存一个对象,就会触发一个事件。这些细节的底层实现与思想聆听作者为你娓娓道来,你可以有更加深刻的体会。

通过本书,你可以知道如何高效地使用HQL的最佳实践,也可以从中知道HQL与Criteria的优缺点,以及Criteria API在什么情况下会是更好的选择;你可以清楚地获知JBoss Cache支持什么样的事务,也可以由详细地对比分析JPA与Hiberante之后得到,譬如,如果你必须使用定位参数,要记住Hibernate是从0开始计数,而Java Persistence则从1开始计数,你必须给JPA QL查询字符串中的每一个问号都添加一个数字。而且可以知道如何减少内存消耗并防止很长的脏查询周期,但是JPA却不支持,以及更多其他信息,如distinct在SQL结果中重复吗?它是在SQL级别上操作还是内存中进行二次过滤呢?等等。

本书旨在使你更快速、更专业地进入ORM——这个企业级应用程序开发领域最核心的技术之一,并从事数据库相关的设计工作。当阅读本书时,你会遇到许多需要动手进行验证的实例,可以利用本书附带的示例程序进行练习与实践。下载地址为:http://caveatemptor.hibernate.org/。CaveatEmptor示例应用程序代码以原生的Hibernate、Java Persistence和JBoss Seam三种实现进行提供,方便读者学习与使用。

正如在翻译过程中发现原著的错误一样,虽然我们在翻译过程中竭力以求信、达、雅,但限于自身水平,必定仍会有诸多不足,还望各位读者不吝指正。大家可以通过访问我的博客http://YuLimin.JavaEye.com/或者发送电子邮件到YuLimin@163.com进行互动。

翻译时所发现的原书错误通过与作者的交流得到了确认,详细情况可以参见我的博客或Hibernate官方论坛 http://forum.hibernate.org/search.php?search_author=YuLimin。

关于术语的翻译,可以到http://yulimin.javaeye.com/blog/70124讨论。

感谢ajax.cn的李锟(dlee)对我在翻译中碰到的问题进行的深入讨论,并对本书翻译时所采用的术语进行了认真的磋商;感谢JavaEye的网友们在术语表讨论贴中提出许多中肯的建议;感谢满江红开源组织的曹晓钢提供的一些翻译注意事项和热情的帮助;感谢图灵公司的编辑。

本书由我组织翻译,杨春花负责翻译第1章到第8章,彭永康负责翻译第9章到第16章,我负责翻译第17章并对全书所有章节进行全面审校。参与翻译与审校的还有:蒋凌锋、魏伟、叶荣生、凌家亮、黄健、万国辉、宋可信、李宗波等,在此再次深表感谢。

本书章节安排合理,内容承上启下,阅读起来有一气呵成之感,不会让你感觉到是在啃“砖块”,而是在享受。快乐分享,实践出真知,最后,祝大家能够像我一样在阅读中享受本书带来的乐趣!

Read a bit and take it out, then come back read some more.

俞黎敏

2007年年底于广州

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论