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

原创 2003年09月23日 01:35:00

介绍:

本文通过一个简单的例子说明了怎样使用对象关系映射桥(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下:

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

        运行例子:执行bin/tutorial1.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);

    }

STM32学习笔记-Flash做为存储器储存数据

http://bbs.elecfans.com/jishu_388272_1_1.html 说到STM32的FLSAH,我们的第一反应是用来装程序的,实际上,STM32的片内FLASH不仅用...
  • du824095524
  • du824095524
  • 2015年03月23日 21:07
  • 2529

在Java中,如何把一个程序的结果需要保存起来,供下一个程序使用的方式

1:最方便的、永久保存的数据库方式。 一个程序执行完后,把结果存入到数据库中,下一个程序启动初始化后再去数据库中查找是否已经存在相应的信息。这种方式的好处:存储方便,只需借助数据库的存储即可,永久保...
  • liufunan
  • liufunan
  • 2016年05月03日 11:16
  • 1487

第六章 树和二叉树(二)

原文地址:第六章 树和二叉树(二)作者:tanzj 41、分别画出具有3个结点的树和3个结点二叉树的所有不同形态. 42、一个深度为L的满K叉树有如下性质:第L层上的结点是叶子结点,其余各层上每个...
  • S04103037
  • S04103037
  • 2013年04月25日 17:35
  • 1278

Android开发教程之使用 HTML 5 开启移动 Web 应用程序的本地存储--千锋培训

  • 2011年05月16日 20:56
  • 277KB
  • 下载

用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件。但是有的同学是做实现层的开发,不直接做View层

用Gradle打包出jar文件 前面我们说过,在Android Studio里面使用Gradle来打包应用程序,一般都是build出来一个apk文件。但是有的同学是做实现层的开发,不直接做View层...
  • renjianhhong
  • renjianhhong
  • 2017年07月15日 11:33
  • 1024

[09] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用异步及存储过程

[渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用异步及存储过程 2014-05-13 16:32 by Bce, 1106 阅读, 2...
  • Litt_J
  • Litt_J
  • 2014年12月29日 14:36
  • 883

在python的应用程序中,不需要关系型数据库时,如MySQL可以使用python提供的持久字典dbm来存储名称和值(键值对)

转载自http://www.cnblogs.com/hongten/p/hongten_python_dbm.html '''     在python的应用程序中,不需要关系型数据库时...
  • wxfy2001
  • wxfy2001
  • 2015年08月04日 22:49
  • 146

在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南

如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣。尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear...
  • GarfieldEr007
  • GarfieldEr007
  • 2017年01月13日 23:18
  • 1166

在 Java 应用程序中使用 Elasticsearch: 高性能 RESTful 搜索引擎和文档存储快速入门指南

如果您使用过 Apache Lucene 或 Apache Solr,就会知道它们的使用体验非常有趣。尤其在您需要扩展基于 Lucene 或 Solr 的解决方案时,您就会了解 Elasticsear...
  • w541826816
  • w541826816
  • 2017年04月10日 14:06
  • 271

ceph存储 使用异步I/O大大提高应用程序的性能

学习何时以及如何使用 POSIX AIO API Linux® 中最常用的输入/输出(I/O)模型是同步 I/O。在这个模型中,当请求发出之后,应用程序就会阻塞,直到请求满足为止。这是很好的一种解...
  • skdkjxy
  • skdkjxy
  • 2015年02月13日 08:42
  • 1155
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在应用程序中将OJB作为一个存储层使用(一)
举报原因:
原因补充:

(最多只允许输入30个字)