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

发表于:2007-07-14来源:作者:点击数: 标签:
如何用JDO 开发 数据库 应用(5) project属性配置界面基本上不需要怎么设置,只要做两个必须的配置: 将My SQL 的JDBC驱动加入到CLASSPATH中 将我们的类代码的根目录加入到CLASSPATH中 界面如下: (图片较大 请放大后查看) 点击“OK”后,我们就到了主窗
如何用JDO开发数据库应用(5)

project属性配置界面基本上不需要怎么设置,只要做两个必须的配置:

将MySQL的JDBC驱动加入到CLASSPATH中
将我们的类代码的根目录加入到CLASSPATH中 界面如下:

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

点击“OK”后,我们就到了主窗口,在主窗口中,我们可以进行metadata的编辑工作。我们通过菜单Meta-->Add Classes将前面的两个数据类加入到元数据中,表示这两个类是需要存储的。其余的数据表结构等等繁琐的事务,我们全部留给JDOGenie自动完成。添加数据类的过程中需要创建一个元数据文件,根据JDO的标准,一般情况下我们只需要在CLASSPATH根目录下创建一个“system.jdo”即可。加入数据类后的界面如下:

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

而自动生成的元数据文件system.jdo内容非常简单,实际上直接用手工写也不难:

<?xml version="1.0" encoding="UTF-8"?>
<jdo>
<package name="credit.system">
<class name="CreditCard" />
<class name="TransactionRecord" />
</package>
</jdo>

不过如果类比较多,之间关系也比较复杂的时候,就最好通过工具完成,以免出现语法和语义错误,除非你已经很有经验。

之后,我们选择菜单的Build-->Recreate Schema来创建相应的数据库。数据库的表结构是自动生成的,如果你对其中一些表名或字段名或字段长度有异议,可以在主窗口中自定义。这里为简明扼要,全部采用自动生成。如果你想在建表之前看看数据结构,可以选择菜单“Build-->View Schema”先预览一下生成的表结构SQL代码:

-- credit.system.CreditCard
create table credit_card (
credit_card_id INTEGER not null, --
address VARCHAR(255), -- address
allow_over_draft FLOAT, -- allowOverDraft
balance FLOAT, -- balance
create_time DATETIME, -- createTime
idcard VARCHAR(255), -- idcard
initial_balance FLOAT, -- initialBalance
last_transaction_time DATETIME, -- lastTransactionTime
nme VARCHAR(255), -- name
phone VARCHAR(255), -- phone
jdo_version SMALLINT not null, --
constraint pk_credit_card primary key (credit_card_id)
) TYPE = InnoDB;

-- za.co.hemtech.jdo.server.jdbc.sql.HighLowJdbcKeyGenerator
create table jdo_keygen (
table_name VARCHAR(64) not null,
last_used_id INTEGER not null,
constraint pk_jdo_keygen primary key (table_name)
) TYPE = InnoDB;

-- credit.system.TransactionRecord
create table transaction_record (
transaction_record_id INTEGER not null, --
amount FLOAT, -- amount
credit_card_id INTEGER, -- card
create_time DATETIME, -- createTime
note VARCHAR(255), -- note
jdo_version SMALLINT not null, --
constraint pk_transaction_record primary key (transaction_record_id)
) TYPE = InnoDB;


接下来,我们保存这个Project,也就是将配置信息写入“creditSys.jdogenie”。下面我们就可以继续开发了,也就是说,我们所有的数据类包装工作就全部完成了,已经可以享受JDO的自动维护的对象存储和灵活的面向对象的JDOQL查询语言的好处了。

JDOGenie1.4.7还有一个好处,是它新增的UML类图功能,简洁明了地给出数据类之间的关系,对于理解别人的数据模型非常有用。选择菜单“Meta-->Diagrams”,将所有的类都加到图中,即可看到本文中的数据模型:

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

如果类比较多的话,可能这些关系线段会有交叉,那就需要我们手动地调整一下各个类的位置,做到尽量减少交叉。一个复杂一点的类图示范如下(未调整位置):

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

(未完待续)

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