Torque是一种ORM的工具,它最早是Apache Jakarta Turbine项目的一部分,现在已经从Turbine中剥离出来,可以独立使用。目前,它的版本是3.0。
Torque的主要特性
Torque主要包含两部分:一部分是Generator,它可以产生应用需要的所有数据库资源,包括sql和java文件;另外,Torque还提供了一个运行环境来运行产生的类。下面主要讨论Torque 的Generator。
1. 三个核心文件
要利用Torque的Generator,必须配置好以下三个文件(Torque的安装路径为$Torque_home):
◆ $Torque_home/build.properties 存储数据库系统的属性,主要有项目名称、数据库类型、数据库链接URL、Driver、用户名、密码及主机名等。Torque利用该文件的属性,建立与数据库系统的连接。
◆ $Torque_home/schema/project-schema.xml、id-table-schema.xml 其中,project-schema.xml 存储表结构信息;而id-table-schema.xml由Torque的IDBroker服务调用。
◆ $Torque_home/Torque.properties 存储应用执行时,由Torque生成的对象模型代码使用的属性值。在生成数据库系统资源的时候不需要这个文件。
2. 核心任务
利用Torque提供的Generator,可以完成下面的主要任务:
◆ sql 解析$Torque_home/schema/*.xml,生成对应的$Torque_home/src/sql/*.sql文件;
◆ doc 解析$Torque_home/schema/*.xml,生成对应的$Torque_home/src/sql/*.html文件,描述数据库结构;
◆ create-db 生成不同平台上产生数据库系统的脚本;
◆ insert-sql 执行$Torque_home/schema/*-schema.sql文件到指定数据库;
◆ sql2xml 解析$Torque_home/schema/schema.sql文件,产生Torque对应的数据库文件$Torque_home/schema/schema.xml;
◆ id-table-init-sql 根据$Torque_home/schema/id-table-schema.xml文件产生id表的初始化脚本文件;
上述任务需要ANT的支持,运行命令为$Torque_home/ant-f build-torque.xml $taskname。
3 .Peer
Peer是Torque使用的ORM工具。它比其它的工具(例如Castor、Osage等)的层次要低。开发人员需要手工编写一些代码,但是这从一定意义上增加了灵活性。
Peer利用Torque数据库Adaptor类来建立与数据库的连接。因为它支持主流的数据库系统,所以,开发人员一般情况下不需要为数据库系统编写Adaptor。
在建立了项目数据库系统的Schema文件后,运行“ant -f build-torque.xml”。Torque为Schema 中的每个表的对象模型生成四个类,例如开发人员在project-schema.xml 中定义了Author表,则Torque生成的四个类为Author、AuthorPeer、 BaseAuthor、BaseAuthorPeer等。其中Author和AuthorPeer分别是BaseAuthor和BaseAuthorPeer 的子类。这两个基类(BaseAuthor、BaseAuthorPeer)包含了Torque的生成逻辑,在开发中不应该修改。因为Torque会在再次生成对象模型时覆盖这些文件,所以系统中的业务逻辑应该放在Author和AuthorPeer类中。
在Torque中,AuthorPeer和BaseAuthorPeer称为对等类(Peer Classes),而Author和BaseAuthor称为数据对象(Data Objects)。对等类和数据对象之间的区别是:“对等类”封装数据表信息,并提供静态方法对表进行增加、删除、修改记录的操作;“数据对象”封装表中的记录信息,并对每个字段提供getters/mutators方法。