在应用程序中将OJB作为一个存储层使用(一) (转)

在应用程序中将OJB作为一个存储层使用(一) (转)[@more@]

介绍:

本文通过一个简单的例子说明了怎样使用对象关系映射桥(OJB)。例子程序含有义产品

目录数据库和一些用户功能。程序的源代码随OJB源代码一起发布,包含在org.apache.

ojb.tutorial1包中。

文档演示了了通过对象关系桥api(PersistenceBroker)去实现五个用户功能的小程序

的具体结构。五个功能中包括对对象的修改,删除,存取等操作。文档也演示了怎样把

一个Product存取对象映射到关系数据库中的一个表。

示例程序:

该例子是一个控制台下的程序,通过不同的用户输入数据来操作产品目录数据库,包括

五个功能:

1. List all Products D――列出库存所有产品

2. Enter a new Product D D―在库存里建立一个新产品

3. Edit an existing Product record D――修改库存里的一个产品

4. Delete a Product record D DㄉD境?獯胬锏囊桓霾??

5. Quit the application D――为了统一,我们也把它作为一个功能

以上的五个功能,仅仅能函盖OJB的一些基础概念。例子中没有提出怎样实现1:1,1:

n或是m:n的映射,想了解这些可以去看导学三 D――高级O/R.

运行例子程序:

为了执行文档中所示程序,你首先必须准备好例子。没有必要去配置一个数据库,例子

程序已经集成了Hsqldb数据库,你所要做的就是用Ant运行示例程序。

压缩OJB的源码,确保你现在所处的目录式OJB所在的目录:

windows 9x/NT/2000/XP下:

  准备例子:执行binuild.bat prepare-tutorials

  运行例子:执行bin utorial1.bat

unix/Linux下:

  准备例子:执行bin/build.sh prepare-tutorials

  运行例子:执行bin/tutorial1.sh

示例程序的结构:

整个程序的结构可以用下面的类图来表示。

程序含有一些UseCases。UseCase接口通过一个抽象基类AbstractUseCase来实现,该类

为具体类的实现提供了一些很使用的代码。有四个具体的UseCase类:UCListAllProduc

ts,UCEnterNewProduct,UCDeleteProduct和UCQuitApplication类。Product类表示在

在product数据库中的一条product记录。

Application.run()方法实现了一个循环,程序在Application.selectUserCase()方法中

等待用户的输入,一旦某个功能被选择,UseCase.apply()方法将被调用。UseCase是通

过我们熟悉的Command设计模式来实现。

  while (true)

  {

  try

  {

  // select a use case and perfoRM it

  UseCase uc = selectUseCase();

  uc.apply();

  }

  catch (Throwable t)

  {

  System.out.println(t.getMessage());

  }

  }

UseCase方法含有两个方法:getDescription()方法和apply()方法。UseCase.getDescr

iption()方法用来把功能的基本信息显示给用户,在Application.selectUseCase()方法

中将会给出一个关于所有功能的目录。UseCase.apply()方法是不同功能的商业逻辑实现

下面是最简单的功能UCQuitApplication类中apply()方法的实现:

  public void apply()

  {

  System.out.println("bye...");

  System.exit(0);

  }


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-963442/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-963442/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值