分享
 
 
 

用Apache Torque项目来提升Java程序的性能

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Apache Torque 是一个使用关系数据库作为存储手段的Java应用程序持久化工具。Torque是一个开源项目,由Web应用程序框架

Jakarta Apache Turbine 发展而来,但现在已完全独立于Turbine。通过JDBC,Torque支持大多数流行的开源商业数据库,包括Oracle、Microsoft SQL Server、IBM DB/2、mysql以及PostgreSQL。

可以用Torque来为数据访问层声成Java代码。也可以通过它从现存数据库中取出Java对象(逆向工程),前提是你拥有一个现存的数据访问对象(DAO)层。对于新的项目来说,假如你用XML为你的业务对象建模,Torque将生成创建数据库表的SQL脚本以及用来读取、写入和查询数据的Java对象。

J2EE程序员对于持久化层有很多不错的选择。( 这里 列举了其它的方法。)我们的重点是Torque所提供的功能以及怎样使它工作起来。本文的示例代码可以 在此 下载。

使用Torque生成数据访问层和值对象

Torque有两大组成部分——生成组件和运行时组件。可以用Torque来生成值对象、SQL表的创建脚本以及数据访问层。 Apache Ant

或者 Apache Maven 都能运行Torque生成器。在本文中,我选用了Ant。

Torque能轻松维护代码是因为值对象、数据访问对象和SQL代码全部是从一个被称为schema的XML文件生成的。将此文件命名为yourprojectname-schema.xml并将其放到Torque安装目录的schema子目录中。这个XML文件包含了你的每个值对象,包括名字、属性以及和其它对象的关系。这里的例子用到的XML schema文件叫作builder-schema.xml,在示例代码中可以找到。注重在这里我们建立了一个从ProdUCt表到Vendor表的外键参考。这是因为一个供给商可以有很多产品,而每种产品都只有一个供给商。

另一个重要的配置文件是Torque安装目录下的build.properties文件。必须编辑这个文件来添加项目名、使用的数据库、必须的JDBC连接信息以及生成的类文件该放到那个包中。这个文件也包含在供下载的示例代码中。

在数据库治理工具中创建一个库,确保你的Apache Ant版本是1.5以上。将驱动JDBC的JAR文件放到Torque安装目录的lib子目录中。然后在Torque目录中运行下面的命令:

ant -f build-torque.xml

Torque应该将所有生成的类文件放到主安装目录下的src/java目录中。而SQL脚本放在src/sql目录中。

生成的Java类和SQL脚本

Torque将为schema XML文件中的每个对象创建5个Java类:

Base Peer类

Peer类(Base Peer类的扩展)

Base Data Object类

Data Object类(Base Data Object类的扩展)

Map Builder类

由于你可以编辑schema并返回生成的脚本,必须有一种方法来还原你所做的改动。Torque通过创建基类来解决这个问题,基类每次都重新生成,而扩展类只在不存在时才生成。应该将所有的代码添加到扩展类中。而不应该编辑Base Peer、Base Data Object和Map Builder类。

Base Data Object类包含了获取和设置对象属性以及将对象存入数据库的方法。BaseVendor.java就是一个例子。Base Peer类包含了从数据库中获取、选择、插入和删除数据对象的方法。其例子是BaseVendorPeer.java。MapBuilder类被Peer类使用。

Peer类和Data Object类是空的,必要的话可以添加或覆盖方法来实现你的业务逻辑。(参见下载文件中的VendorPeer.java和Vendor.java。)

创建的SQL脚本是针对你选用的数据库的。每个数据库都有一些微妙的特性,Torque必须处理全部这些。假如要更换数据库的话,更新build.properties中的信息并重新生成类和SQL脚本。主要的SQL脚本生成在builder-schema.sql文件中。假如需要的话,Torque还能够运行SQL脚本。假如选择了Torque ID Broker方法(下面将会讲到)那么要确信你还对数据库运行了第二个ID方法。

Criteria类

在Torque中,使用名为Criteria的类来模拟SQL的WHERE语句。创建一个新的Criteria对象,并使用其方法来向它添加限制条件。

ID方法

Torque可以使用很多方法来为数据库中的对象生成主键。这个例子中,我们使用Torque的ID Broker方法来生成键。这并不依靠数据库的兼容性。假如想利用数据库的内建功能,可以使用本地方法。每种数据库都用不同的方法来为表中的每条记录创建唯一的主键。也可以让Torque不为表中的记录声称主键。编写一个有效对象映射最难的地方是将数据库的主键和一个单独的对象实例联系起来,而使用Torque却使它变得相当轻松。

在应用程序中集成Torque

一旦数据库设置好并且拥有了生成类,就可以将Torque运用到程序中了。编辑Torque.properties文件以使用JDBC连接信息和项目名称(builder)。确信在程序中用Torque.init()方法对Torque进行初始化。对于我们例子程序来说,将示范Vender和Product对象之间的一对多联系。我们还将使用Peer类来销毁Product对象。要获取更多的信息,可以到 Troque Web Site 去查询生成类的方法。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有