Torque学习概要的内容介绍

Torque学习概要的内容介绍

Torque概要
 
1. Torque
Torque是一个持久框架,也是jakarta的一个子目,原来包括在Turbine框架中,从Turbine2.2Torque被分离出来作一个独的子目。目前最高版本是3.2
2. 持久以及持久框架的理解
持久就是在整个系中与持久存储Database,LDAP Server,XML等打交道的部分。持久框架的作用就是使持久层访问持久介更加方便。如果是访问Database而建立的持久框架那就又有一个O/R Mapping的概念。O/R Mapping就是建立(Object)系数据(R)中的表(不一定是一)的映射。Torque就是这样起到O/R Mapping作用的持久框架。他使java程序可以方便地通操作普通java象的方式来访问数据,甚至不用了解数据的相(最好是了解),另一个好是屏蔽数据库类型即可任意更持久框架支持的Database
3. Torque的工作原理
一般在利用O/R Mapping框架开发候,有三个基本的元即系数据中的表(Table)Java中的持久(PO),POTable映射的xml文件(Schema)
首先,Torque包含一个generator用来根据由开发者配置好的Schema来自生成POTable就意味着开发者只要定SchemaPOTable就可以自生成了。
在生成好的POTable以后,开发者就可以利用POTable访问了。了达到个目的Torque提供了一个运行时环境来保的正确运行。在工程中引入了torque.jar就可以个运行境了。
4. Torque中的包,和接口
Torque的源提供的是运行境,基于Torque开发关心的是生成的PO的使用方法即怎使用生成的PO来操作Table。下面会通Torque学上的例子来详细说明。
5. 学中的例子
5.1利用generator生成POTable
首先,要通generator来生成POTable要定Schemagenerator的配置。
Schema的定如下:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE database SYSTEM
"http://db.apache.org/torque/dtd/database_3_1.dtd">
<database
name="torque"
defaultIdMethod="idbroker">
<table name="book" description="Book Table">
<column
name="book_id"
required="true"
primaryKey="true"
type="INTEGER"
description="Book Id"/>
<column
name="title"
required="true"
type="VARCHAR"
size="255"
description="Book Title"/>
<column
name="isbn"
required="true"
type="VARCHAR"
size="24"
javaName="ISBN"
description="ISBN Number"/>
<column
name="publisher_id"
required="true"
type="INTEGER"
description="Foreign Key Publisher"/>
<column
name="author_id"
required="true"
type="INTEGER"
description="Foreign Key Author"/>
<foreign-key foreignTable="publisher" onDelete="cascade">
<reference
local="publisher_id"
foreign="publisher_id"/>
</foreign-key>
<foreign-key foreignTable="author" onDelete="cascade">
<reference
local="author_id"
foreign="author_id"/>
</foreign-key>
</table>
<table name="publisher" description="Publisher Table">
<column
name="publisher_id"
required="true"
primaryKey="true"
type="INTEGER"
description="Publisher Id"/>
<column
name="name"
required="true"
type="VARCHAR"
size="128"
description="Publisher Name"/>
</table>
<table name="author" description="Author Table">
<column
name="author_id"
required="true"
primaryKey="true"
type="INTEGER"
description="Author Id"/>
<column
name="first_name"
required="true"
type="VARCHAR"
size="128"
description="First Name"/>
<column
name="last_name"
required="true"
type="VARCHAR"
size="128"
description="Last Name"/>
</table>
</database>
schema里定Table构,生成的PO在会按照一定规则Table对应
然后修改build.properties文件加入如下部分:
torque.database = mysql
torque.project = torque
torque.addGetByNameMethod = true
torque.addIntakeRetrievable = false
torque.addSaveMethod = true
torque.addTimeStamp = true
torque.basePrefix = Base
torque.complexObjectModel = true
torque.useClasspath = false
torque.useManagers = false
 
torque.targetPackage=org.together.om
torque.database.createUrl = jdbc:mysql://127.0.0.1/mysql
torque.database.buildUrl = jdbc:mysql://127.0.0.1/torque
torque.database.url = jdbc:mysql://127.0.0.1/torque
torque.database.driver = org.gjt.mm.mysql.Driver
torque.database.user = root
torque.database.password = haohao
torque.database.host = 127.0.0.1
torque.sameJavaName = false
关键绿标记的部分,表明是接的mysql数据,并将生成的PO放到org.together.om包中。 最后利用antgenerator这样就可以在数据中生成相Table,并生成于Table对应PO(放在定好的org.together.om)。拿schema中定Author例,运行generator后可以在mysql数据中生成一Author表,DDL如下:
CREATE TABLE `author` (
`author_id` int(11) NOT NULL default '0',
`first_name` varchar(128) NOT NULL default '',
`last_name` varchar(128) NOT NULL default '',
PRIMARY KEY(`author_id`)
) TYPE=MyISAM
org.together.om包下会有一个BaseAuthor(由于生成的PO多在下面会详细)中会有如下的属性与Table中的字段对应