到此为止,我们的创建信用卡的功能便完成了,现在我们来看一看JDOGenie提供的工作台集成的JDOQL查询功能:在工作台(WorkBench)中选中CreditCard类,然后选择菜单“Run-->View Class Extent”可以查看CreditCard类的所有对象,这里我们看到下面的结果:
(图片较大 请放大后查看)
下面我们接着实现需求描述中的其它功能,并且在输出信息中不再显示JDOGenie的调试跟踪信息(实际上在项目配置中可以将这些信息屏蔽掉),如图(将日志级别改为“errors”):
(图片较大 请放大后查看)
这个功能仅仅是一个对所有信用卡的查看。实际上前面已经看到,在工作台中已经可以很轻松地完成这个功能,不过我们这里需要在程序中完成。
我们在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()方法,现在我们看到,这两个方法发挥了作用!
(未完待续)
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/