如何用JDO开发数据库应用(8)

发表于:2007-07-14来源:作者:点击数: 标签:
如何用JDO 开发 数据库 应用(8) 到此为止,我们的创建信用卡的功能便完成了,现在我们来看一看JDOGenie提供的工作台集成的JDOQL查询功能:在工作台(WorkBench)中选中CreditCard类,然后选择菜单“Run--View Class Extent”可以查看CreditCard类的所有对
如何用JDO开发数据库应用(8)

到此为止,我们的创建信用卡的功能便完成了,现在我们来看一看JDOGenie提供的工作台集成的JDOQL查询功能:在工作台(WorkBench)中选中CreditCard类,然后选择菜单“Run-->View Class Extent”可以查看CreditCard类的所有对象,这里我们看到下面的结果:

点击放大
(图片较大 请放大后查看)

如果我们修改程序并创建了多张信用卡的话,在这个对话框中会看到更多的CreditCard类的实例对象(上图实际上已经显示了两张信用卡信息。

下面我们接着实现需求描述中的其它功能,并且在输出信息中不再显示JDOGenie的调试跟踪信息(实际上在项目配置中可以将这些信息屏蔽掉),如图(将日志级别改为“errors”):


(图片较大 请放大后查看)

· 4.5.2. 浏览信用卡信息

这个功能仅仅是一个对所有信用卡的查看。实际上前面已经看到,在工作台中已经可以很轻松地完成这个功能,不过我们这里需要在程序中完成。

我们在Main类中加入一个方法:listCards()

/**
* 列出系统中所有的信用卡资料
*/
public static void listCards() {
PersistenceManager pm = getPersistenceManager();
for(Iterator itr = pm.getExtent(CreditCard.class,false).iterator();
itr.hasNext(); ) {
Object o = itr.next(); System.out.println("DataStoreIdentity="+JDOHelper.getObjectId(o)+", "+o); }
pm.close(); }


该方法列出当前系统中的所有信用卡,包括自动生成的卡号(对象标识)。可以看到,方法的内容非常简单。你可以不屑一顾地说:哦,原来JDOGenie的工作台中的查看类对象的功能也不过如此而已!不错,确实如此而已,原因很简单:科技以人为本,JDO的目标就是简化操作!

另外,再将main()方法改一下:

public static void main(String[] args) throws Exception {
System.out.println("开始测试功能……");

listCards();
}


然后编译,运行,结果如下(如果用Ant来运行,可能显示结果会有一些Ant工具的信息,以后不再解释):

开始测试功能……
DataStoreIdentity=1979371451-1, 信用卡:余额=500.0,持卡人=张三,身份证号=223003433995431237,电话=020-38864157
DataStoreIdentity=1979371451-11, 信用卡:余额=500.0,持卡人=李四,身份证号=320012194501032339,电话=020-38864157


这里,我们可以看到几点:一是JDOGenie的日志功能已经关闭(前面的设置生效了),二是显示信用卡时利用到了CreditCard中的toString()方法。俗话说,机遇只照顾有准备的头脑,前面我们似乎是画蛇添足地给两个数据类加入了toString()方法,现在我们看到,这两个方法发挥了作用!

(未完待续)

原文转自:http://www.ltesting.net