使用JDO,vs. EJB和JDBC
JDO并不意味着要取代JDBC。它们是两种以各自独一无二的能力互相补充的技术,具有不同技术背景和开发目的开发者可以使用二者中的一个。例如。JDBC通过直接的数据库访问控制和缓存管理,提供给开发者更大的弹性。JDBC是一种在工业界被广泛认可的成熟技术。另一方面,JDO,通过隐藏SQL提供给开发者更大的简便性。它将Java平台开发者从必须熟悉或学习SQL中解脱出来,而将精力集中在DOM上,同时JDO管理在持久存储中对象存储的字段到字段的细节。
你可以学习更多关于JDO和JDBC之间的关系,还有EJB2.0 CMP和JDO之间的关系。
POJO之路
JDO和EJB之间在持久化模型上显著的差别曾经在开发者中间引起了混乱。作为回应,Sun微系统正领导一个社区项目为Java技术社区创建POJO持久化模型。这个项目在JSR-220的赞助下执行,由Linda DeMichiel领导。JDO2.0(JSR-243)的专家组成员被邀请加入到EJB3.0(JSR-220)专家组中。
创建POJO持久化模型的目的是为所有使用Java SE和Java EE平台的Java应用程序开发者提供一个对象—关系(object-relational)映射工具。值得注意的是Oracle正以co-specification lead的身份加入到Sun EJB3.0。EJB3.0的公众评论草案已经可以得到。
JSR-243(JDO2.0)遵循了那些来自于JSRs220和243规范的领导写给Java技术社区的信件所描述的轮廓。
JDO2.0并不打算作为EJB3.0持久化特定API的集中,而是作为JDO1.0.2的发展。但是JDO的POJO持久化模型和EJB3.0之间的类似处,使得JDO的客户当使用JDO2.0满足立即的需求时,可以很容易的接受EJB3.0持久化模型。另外,JSR-243打算将JDOQL用作一种关于EJB3.0持久化数据的可选查询语言。这种语言了已经被更新从而可以更好地对EJB3.0使用。
要了解更多关于持久化模型的知识,请查看EJB/JDO持久化FAQ。
JDO Class类型
在JDO中一共有三种类型的类:
·Persistence-capable:这种类型代表那些实例可以被持久化到一个数据存储中的类。请注意,这些类在JDO环境中被使用之前,需要通过JDO元数据规范进行加强。
·Persistence-aware:这些类操纵persistence-capable类。JDOHelper类包含了一些方法,它们允许询问一个persistence-capable类的实例的持久化状态。请注意,这些类使用最小化的JDO元数据加强。
·Normal:这些不可被持久化,并且对持久化一无所知。另外它们不需要JDO元数据。
