一、 前言
基于POJO的持久化技术,如Hibernate、JDO,如今受到广大J2EE开发者的追捧。当然,一门技术受到关注不会是凭空的。基于POJO的持久化技术,到底给我们带来了什么?
1、 对象驱动开发,使得基于OO方法学的开发过程更加流畅。基于JDBC、甚至EntityBean的开发,基本上是典型的数据驱动开发。
2、 提高开发效率。您不再需要大量的JDBC编码。
3、 功能强大。
4、 便于测试。
而EJB3.0持久化模型和Hibernate如出一辙,但是以其权威性备受关注。
下面,我将和大家一起来探讨SLSB+EJB3.0(edr2)架构的实施方法。这里,我们采用Hibernate EJB3.0(edr2)实现。
二、 准备工作
1、Apusic4.0应用服务器
下载地址:http://www.apusic.com/product/download/Apusic-4.0.exe
说明:Apusic4.0 AS是金蝶中间件公司的产品。J2EE1.4兼容。
2、数据库系统MS SQLServer
Microsoft SQLServer 2000 Driver:msutil.jar、msbase.jar、mssqlserver.jar
3、Hibernate-3.0.1
下载地址:http://prdownloads.sourceforge.net/hibernate/hibernate-3.0.1.zip?download
说明:Hibernate Core。是EJB3.0(edr2)持久化技术的底层基础。
4、Hibernate Annotations 3.0 Preview beta 1
下载地址:
http://prdownloads.sourceforge.net/hibernate/hibernate-annotations-3.0beta1.zip?download
说明:EJB3.0(edr2)绝大部分持久化Meatadata(Annotation)实现,并且提供了很多实用而强大的扩展Annotation。
5、Eclipse
6、JDK必须1.5以上
三、 示例:作者/著作(Author/Work)
这个示例来自Hibernate Manual(Author/Work)。这个Sample,涉及Many-Many、One-One关系、继承,很适合做技术演示。
假设,在基于OO方法学的开发过程中,我们在详细设计完成后,得到下面的UML图。
图中涉及的对象,都是需要持久化到数据库的。如果,你打算基于JDBC或者EntityBean来做开发,那么,显然,你的下一步工作就是设计数据库Schema。然后,针对Schema进行JDBC、EntityBean编码。但是,作为一个纯粹而挑剔的OO开发者,这种数据驱动开发很别扭,而且,往往,这种开发模型的编码类似于过程编程。
理想的状态:详细设计后,编码。我的代码只关心商业逻辑,至于在商业逻辑中涉及的对象持久化到什么地方、怎样持久化,我都没有兴趣。充其量,为了配合O/R Tool,我提供对象关系、有利于提高持久化性能、扩展性等等Metadata。OK。就是这样。在UML图的基础上,我们接下来的工作就是:






