Apache OJB (Java)
Apache OJB
Apache ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases.
OJB supports multiple persistence APIs to provide users with their API of choice:
- A PersistenceBroker API which serves as the OJB persistence kernel. The OTM-, ODMG- and JDO-implementations are built on top of this kernel.
This API can also be used directly by applications that don't need full fledged object level transactions. (See the Persistence Broker Tutorial for details.) - A full featured ODMG 3.0 compliant API. (See the ODMG Tutorial for an introduction.)
- A JDO compliant API. We currently provide a plugin to the JDO Reference Implementation (RI). Combining the JDO RI and our plugin provides a JDO 1.0 compliant o/r solution.
A full JDO implementation is scheduled for OJB 2.0. (See the JDO tutorial for an introduction to the JDO programming model.) - An Object Transaction Manager (OTM) layer that contains all features that JDO and ODMG have in common. (See the OTM tutorial for details).
Homepage: http://db.apache.org/ojb/
如何在Resin中使用OJB
最近有一个原来运行在Tomcat5上的项目,现在因为客户的原因,移植到Resin上,最后发现OJB运行不正常,即Reference及 Collection都不能自动载入,但运行测试用例是正确的,经过跟踪发现,原来是Resin使用了自己的XML解析,所以不能正常解析OJB的XML 配置文件,经过分析resin.conf,尝试修改以下的内容,强迫resin使用xerces进行XML解析。这样就可以解决问题了。...
OJB查询(一)
OJB查询 该文档介绍了不同查询机制的使用。文档中的代码都通过Junit测试过。 内容: 1. Query by criteria 2. ODMG Object Query Language(OQL) 3. JDO queries 通过criteria查询: 在本节中,你将学到如何使用criteria进行查询。相应的类放在org.apache.ojb.broker包中。使用criteria查询既可以得到整个对象(如person),也可以使用report ...
在应用程序中将OJB作为一个存储层使用(六)
Product映射: 现在我们要开始讲解从Product类到数据库表PRODUCT的映射。通常这种映射都不是通过编程实现,而是通过定义一个xml文件。DescriptorRepository类提供了一些方法来读取xml文件并进行初始化。结果就能在以后的编程中被使用(也可以通过纯编程来实现)。 我们已经写好了我们的映射关系,文件放置在src/test/ojb/repository.xml,中,...
在应用程序中将OJB作为一个存储层使用(五)
定义对象/关系映射: 在看了实例程序的源代码和数据库(运行bin\build browse -db将会启动InstantDB数据库的浏览窗口)后,你可能会问:在程序中我们并没用看到任何关于数据存储的代码,OJB Broker是怎么样实现把Product类的信息存储到PRODUCT表中去的?OJB怎么样知道把数据库中的NAME列映射到name属性上? 答案就是一切都是在OJB元数据库中进行的。库中包...
在应用程序中将OJB作为一个存储层使用(四)
删除对象: UCDeleteProduct类允许用于从products中选择一条记录并将它从存储库中删除。用户输入产品的productId,broker试着查找指定的product。我们不需要拥有真个产品目录,所以查找是很有必要的。Broker接着将找到的product删除,代码如下: public void apply() { String in = readLineWithMessage("Delete Product with...
在应用程序中将OJB作为一个存储层使用(三)
如果在product表中有10000条记录,那么从存储库中获得所有得记录是一个很费时的操作,每个记录都必须新建一个对象,整个表都要读入内存。在示例程序中,没有考虑性能问题,但是在一个实际的应用OJB的程序中,我们需要一个更有效的方法来获得所有记录,如果你的程序不需要将整个表调入内存,那么建议你使用getIteratorByQuery()方法来返回Iterator而不返回Colle...
在应用程序中将OJB作为一个存储层使用(二)
用OJB PersistenceBroker API实现各种功能: 上面的一段代码很简单,因为没有涉及到存储操作,仅仅是程序的退出。下面让我们来看一个更具体的例子:UCListAllProducts类。该功能必须含有一个Collection类来包含数据库中的所有产品,然后将所有产品一一枚举并显示出来。为了得到数据库中的所有产品,我们需要使用OJB API中的一个方法。 OJB提供三个主要的AP...
在应用程序中将OJB作为一个存储层使用(一)
介绍: 本文通过一个简单的例子说明了怎样使用对象关系映射桥(OJB)。例子程序含有义产品目录数据库和一些用户功能。程序的源代码随OJB源代码一起发布,包含在org.apache. ojb.tutorial1包中。 文档演示了了通过对象关系桥API(PersistenceBroker)去实现五个用户功能的小程序的具体结构。五个功能中包括对对象的修改,删除,存取等操作。文档也演示了怎样...
OJB简介--翻至ojb docs
简介: 对象关系桥(OJB)是一种对象关系映射工具,它能够完成从Java对象到关系数据库的透明存储。 灵活性: OJB给用户提供了多种存储API,让用户有很多选择: 1. 提供完全的ODMG3.0 API(详情可参考导学2) 2. 完全的JDO API。我们现在提供了JDO RI的一个插件,JDO RI与插件结合提供了一个完整的基于JDO1。0的O/R解决方案 3. 提供一个JDO和ODMG的公共...