1      使用简明流程

1.1     从已经存在的数据库生成schema XML文件

1.1.1   编辑build.properties

1.2  根据schema XML文件生成java object model模型源代码

1.3  在项目中整合torque

1.3.1 编辑Torque.properties

1.3.2   在项目的初始化代码中添加一下代码:

1.4  增加新表

1.4.1   备份shx3-schema.xml

1.4.2   ant –fbuild-torque.xml jdbc

1.4.3   将新的表的XML文本块粘贴到备份的shx3-schema.xml

1.4.4   备份src/java/*

1.4.5   ant –fbuild-torque.xml om

1.4.6   将新的表对应的java文件添加到项目中。

1.5      删除旧表

1.5.1   删除表

1.5.2   删除项目中该表相关联的java源代码

1.6      修改数据库表结构

1.6.1.  注意如果修改的表对应的java文件有添加了自定义的方法,含有该方法的java文件需要事先备份。待增加新表操作完成后,再将这些java文件复制过来,覆盖生成的文件。其实,torque在生成java文件时,不会覆盖从base基类继承来的类。所以,在保证安全的情况下,可以直接在修改的package上直接生成java代码。

1.6.2   先执行删除旧表,然后执行增加新表

1.7      包管理及缺省基类

2       torque结构说明

3       编码

3.1        在生成的java源码中添加自定义方法.

3.2        初始化

3.3 ID生成器的使用

3.4 INSERT

3.5 SELECT

3.6 UPDATE.

3.7 DELETE

3.8 简单查询

3.9   复杂查询

3.10 关联查询

3.11 DISTINCT

3.12 排序

3.13 GROUP BY AND DISTINCT

3.14 条件查询

3.15 自定义查询条件

3.16 在查询中使用两次同一字段

3.17 翻页

3.18 事务处理

4、模板文件

4.1    Torque.properties

1      使用简明流程

1.1     从已经存在的数据库生成schema XML文件

1.1.1   编辑build.properties

torque.project = shx3
torque.database = oracle
torque.targetPackage = net.emedchina.om
torque.database.createUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.database.buildUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk torque.database.url = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.database.driver = oracle.jdbc.OracleDriver
torque.database.user = shx3
torque.database.password = shx3
torque.database.host = 172.25.3.201
# 下面一行至关重要
torque.database.schema = SHX3

1.1.1.1   ant–f build-torque.xml jdbc

1.1.1.2   生成:schema/shx3-schema.xml,该文件用于生成模型源代码。可进行调整,以符合项目需要。

1.1.1.3   ant–f build-torque.xml sql

1.1.1.4   生成:src/sql/*,这些文件用于创建数据库及ID_TABLE

1.2  根据schema XML文件生成java object model模型源代码

1.1.1   调整shx3-schema.xml,一般情况下不需要调整。

1.1.2   ant–f build-torque.xml om

1.1.3   生成:src/java/*,这些文件用于项目的所有数据库访问

1.3  在项目中整合torque

1.3.1 编辑Torque.properties

torque.applicationRoot = .
torque.database.default=shx3
torque.database.shx3.adapter=oracle

## Using torque's old pool
torque.dsfactory.shx3.factory=org.apache.torque.dsfactory.

TorqueDataSourceFactory
torque.dsfactory.shx3.pool.defaultMaxConnections=10
torque.dsfactory.shx3.pool.maxExpiryTime=3600
torque.dsfactory.shx3.pool.connectionWaitTimeout=10
torque.dsfactory.shx3.connection.driver = oracle.jdbc.OracleDriver
torque.dsfactory.shx3.connection.url = jdbc:oracle:thin:@172.25.3.201:

1521:devgbk
torque.dsfactory.shx3.connection.user = shx3
torque.dsfactory.shx3.connection.password = shx3

1.3.2   在项目的初始化代码中添加一下代码:

try {
            InputStream in =
                getClass().getResourceAsStream("/Torque.properties");
            PropertiesConfiguration c = new PropertiesConfiguration();
            c.load(in);
            in.close();

Torque.init(c);

}catch (Exception e) {
            e.printStackTrace();
  }

1.4  增加新表

1.4.1备份shx3-schema.xml

1.4.2   ant –f build-torque.xml jdbc

1.4.3将新的表的XML文本块粘贴到备份的shx3-schema.xml

1.4.4备份src/java/*

1.4.5   ant –f build-torque.xml om

1.4.6将新的表对应的java文件添加到项目中。

1.5       删除旧表

1.5.1   删除表

1.5.2   删除项目中该表相关联的java源代码

1.6        修改数据库表结构

1.6.1

注意如果修改的表对应的java文件有添加了自定义的方法,含有该方法的java文件需要事先备份。待增加新表操作完成后,再将这些java文件复制过来,覆盖生成的文件。其实,torque在生成java文件时,不会覆盖从base基类继承来的类。所以,在保证安全的情况下,可以直接在修改的package上直接生成java代码。

1.6.2   先执行删除旧表,然后执行增加新表。

1.7       包管理及缺省基类

根据系统的各个子系统,定义的表也分为多个子包。范例:

<?xml version="1.0"?>
<!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd">
<!-- Autogenerated by JDBCToXMLSchema! -->
<databasename="shx3"defaultIdMethod="none"package="net.emedchina.om.plt"baseClass="net.emedchina.base.DataObject"basePeer="net.emedchina.base.Peer">

<tablename="TMP_TEST">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
        <columnname="NAME"size="200"type="VARCHAR"/>
        <columnname="LASTUPDATE"type="TIMESTAMP"/>
        <columnname="COL1"size="24"type="CHAR"/>
        <columnname="COL2"size="24"type="CHAR"/>
    </table>
..
</xml>

2       torque结构说明

2.1        Database Maps:存储数据库结构的内部对象。

2.2        Peer Classes:进行1-1表操作的对象。

2.3        Data Objects:映射为1张表的对象。

2.4        Criteria Objects:条件对象。定义查询条件。

2.5       ID Broker:产生表级唯一ID的对象。

2.6        Schema Definition:定义数据库逻辑结构的文件。

2.7       Selects:通过Peers进行操作。

2.8       Inserts:可以通过Peers和DataObject进行操作。

2.9       Deletes:通过Peers进行操作。

2.10    Joins and linking objects:通过Criteria和Criteria.Criterion进行操作。

3       编码

3.1        在生成的java源码中添加自定义方法

自定义的方法可以添加到tableName.java和tableNamePeer.java中,不要修改任何baseTableName.java和baseTableNamePeer.java。

3.2        初始化

InputStream in =
            getClass().getResourceAsStream("/Torque.properties");
        PropertiesConfiguration c = new PropertiesConfiguration();
        c.load(in);
        in.close();
    Torque.init(c);

3.3 ID生成器的使用

1.1.1   确认表的ID有primary key属性

1.1.2   ant–f build-torque.xml jdbc

1.1.3   生成:从已经存在的数据库生成schema XML文件

1.1.4   ant–f build-torque.xml

1.1.5   生成:从schema XML文件生成SQL和Java代码

1.1.6   ant–f build-torque.xml id-table-init-sql

1.1.7   生成:src/sql/shx3-schema-idtable-init.sql

1.1.8   执行生成的 SQL 语句,整合java源代码到项目中

1.1.9   编码1:使用tableName.save() 时,新的ID自动获得,并插入到新增的记录中。

1.1.10    编码2:手工得到下一个ID,得到ID后,ID自动增加

// 通过 ConnectionManager 得到一个 Connection con

long id = Torque.getDatabaseMap().getIDBroker().getIdAsLong( con,"表名" );

3.4 INSERT

Publisher addison = new Publisher();
    addison.setName("Addison Wesley Professional");
    addison.save();

Author bloch = new Author();
    bloch.setFirstName("Joshua");
    bloch.setLastName("Bloch");
    bloch.save();

Book effective = new Book();
    effective.setTitle("Effective Java");
    effective.setISBN("0-618-12902-2");
    effective.setPublisher(addison);
    effective.setAuthor(bloch);
    effective.save();

3.5 SELECT

Criteria crit = new Criteria();
    List v = BookPeer.doSelect(crit);

Criteria crit = new Criteria();
    crit.add(BookPeer.ISBN, "0-618-12902-2");
    List v = BookPeer.doSelect(crit);

3.6UPDATE

Criteria crit = new Criteria();
        crit.add(TmpTestPeer.ID, "1010");
        List v =TmpTestPeer.doSelect(crit);
        if( v.size() == 1 )
        {    
            TmpTest tt = (TmpTest)v.get(0);
            System.out.println( tt.getName() );
            tt.setName("Value from update");
            tt.save();
        }

3.7DELETE

Criteria crit = new Criteria();
        crit.add(TmpTestPeer.ID, "1010");
        TmpTestPeer.doDelete(crit);
        
        crit = new Criteria();
        crit.add(TmpTestPeer.ID, "1020");
        List v =TmpTestPeer.doSelect(crit);
        if( v.size() == 1 )
        {    
            TmpTest tt = (TmpTest)v.get(0);
            TmpTestPeer.doDelete(tt);
        }

3.8 简单查询

Peers.doSelect();

3.9  复杂查询

//select * from abc where (a < 1 and b > 2) or (  a > 5  and b < 3)
        Criteria crit = new Criteria();
        Criteria.Criterion a1 = crit.getNewCriterion(ABC.A, 1,                         Criteria.LESS_THAN);
        Criteria.Criterion b2 = crit.getNewCriterion(ABC.B, 2,                         Criteria.GREATER_THAN);
        Criteria.Criterion a5 = crit.getNewCriterion(ABC.A, 5,                         Criteria.GREATER_THAN);
        Criteria.Criterion b3 = crit.getNewCriterion(ABC.B, 3,                         Criteria.LESS_THAN);

crit.add(a1.and(b2).or(a5.and(b3)));

3.10 关联查询

// select tt.* from tmp_test tt,plt_platform pp
        // where pp.id=tt.id
        
        Criteria crit = new Criteria();
        crit.addJoin(TmpTestPeer.ID, PltPlatformPeer.ID);
        List v =TmpTestPeer.doSelect(crit);
        Iterator i = v.iterator();
            while (i.hasNext())
        {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.11DISTINCT

Criteria crit = new Criteria();
        crit.addJoin(TmpTestPeer.NAME, PltPlatformPeer.NAME);
        crit.setDistinct();
        List v =TmpTestPeer.doSelect(crit);
            Iterator i = v.iterator();
            while (i.hasNext())
            {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.12 排序

Criteria crit = new Criteria();
        crit.addDescendingOrderByColumn( TmpTestPeer.LASTUPDATE );
        List v =TmpTestPeer.doSelect(crit);
           Iterator i = v.iterator();
            while (i.hasNext())
            {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.13 GROUP BY AND DISTINCT

Criteria crit = new Criteria();
        crit.addSelectColumn( TmpTestPeer.NAME );
        crit.addGroupByColumn( TmpTestPeer.NAME );
        crit.setDistinct();
        List v =TmpTestPeer.doPSSelect(crit);
        Iterator i = v.iterator();
            while (i.hasNext())
            {
            Object tt = i.next();
            System.out.println( tt.toString() );            
        }

3.14 条件查询

Criteria crit = new Criteria();
        crit.add( TmpTestPeer.NAME, (Object)"1000", Criteria.LIKE );
        List v =TmpTestPeer.doSelect(crit);
           Iterator i = v.iterator();
            while (i.hasNext())
           {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.15自定义查询条件

Criteria crit = new Criteria();
        crit.add( TmpTestPeer.NAME, 
            (Object)("UPPER(" + TmpTestPeer.NAME + ")='1000'"),                     Criteria.CUSTOM);
        List v =TmpTestPeer.doSelect(crit);
           Iterator i = v.iterator();
            while (i.hasNext())
           {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.16 在查询中使用两次同一字段

Criteria criteria = new Criteria();
        criteria.add(InvoicePeer.COST, 1000, Criteria.GREATER_EQUAL);

Criteria.Criterion criterion = 
            criteria.getCriterion(InvoicePeer.COST);
        criterion.and(
               criteria.getNewCriterion(
                             criterion.getTable(),
                             criterion.getColumn(),
                             new Integer(5000),
                             Criteria.LESS_EQUAL )
            );

3.17 翻页(torque 3.0对于 Oracle翻页有BUG!所以,不能在项目中使用torque的反页机制。如果需要翻页,使用DAO

Criteria crit = new Criteria();
        crit.add( TmpTestPeer.NAME, "Test name" );
            crit.setLimit(6);
            crit.setOffset(3);
            System.out.println( crit );
        List v =TmpTestPeer.doSelect(crit);
           Iterator i = v.iterator();
            while (i.hasNext())
           {
            TmpTest tt = (TmpTest)i.next();
            System.out.println( tt.getId() + ":" + tt.getName() );
        }

3.18 事务处理

Connection con = Transaction.begin("shx3");
        Criteria crit = new Criteria();
        crit.add(TmpTestPeer.NAME, (Object)"%", Criteria.LIKE);
        crit.setUseTransaction(true);

List list = TmpTestPeer.doSelect(crit);
        Transaction.commit(con);

4、模板文件(build.properties)

# -------------------------------------------------------------------
#
# T O R Q U E  C O N F I G U R A T I O N  F I L E
#
# -------------------------------------------------------------------
# This file contains the most commonly used properties. For a
# a complete list of build properties, please refer to:
#   http://jakarta.apache.org/turbine/torque/properties-reference.xml
# -------------------------------------------------------------------

# -------------------------------------------------------------------
#
#  P R O J E C T
#
# -------------------------------------------------------------------
# This is the name of your Torque project. Your non-Java generated 
# files will be named using the project name selected below. If your
# project=killerapp then you will have a generated:
#
#   killerapp-schema.sql
#
# The custom is then to also rename your project XML schema from
# project-schema.xml to killerapp-schema.xml. This is required 
# for a few targets such as datasql, datadump, and datadtd.
# -------------------------------------------------------------------

# torque.project = bookstore
torque.project = shx3

# -------------------------------------------------------------------
#
#  T A R G E T  D A T A B A S E
#
# -------------------------------------------------------------------
# This is the target database, only considered when generating
# the SQL for your Turbine project. Your possible choices are:
#
#   axion, cloudscape, db2, db2400, hypersonic, interbase, mssql,
#   mysql, oracle, postgresql, sapdb, sybase
# -------------------------------------------------------------------

# torque.database = postgresql
torque.database = oracle

# -------------------------------------------------------------------
#
#  O B J E C T  M O D E L  I N F O R M A T I O N
#
# -------------------------------------------------------------------
# These settings will allow you to customize the way your
# Peer-based object model is created.
# -------------------------------------------------------------------
# addGetByNameMethod
#   If true, Torque adds methods to get database fields by name/position.
#
# addIntakeRetrievable
#   If true, the data objects will implement Intake's Retrievable 
#   interface
#
# addSaveMethod
#   If true, Torque adds tracking code to determine how to save objects.
#
# addTimeStamp
#   If true, Torque true puts time stamps in generated om files.
#
# basePrefix
#   A string to pre-pend to the file names of base data and peer objects.
#
# complexObjectModel
#   If true, Torque generates data objects with collection support and 
#   methods to easily retreive foreign key relationships.
#
# targetPackage
#   Sets the Java package the om files will generated to, e.g. 
#   "com.company.project.om".
#
# useClasspath
#   If true, Torque will not look in the <code>templatePath</code> directory,
#   for templates, but instead load them from the classpath, allowing you to 
#   use Torque without extracted it from the jar.
#
# useManagers
#   If true, Torque will generate Manager classes that use JCS for caching.
#   Still considered experimental.
# -------------------------------------------------------------------

torque.targetPackage = net.emedchina.om

torque.addGetByNameMethod = true
torque.addIntakeRetrievable = false
torque.addSaveMethod = true
torque.addTimeStamp = true
torque.basePrefix = Base
torque.complexObjectModel = true
torque.useClasspath = false
torque.useManagers = false

# -------------------------------------------------------------------
#
#  D A T A B A S E  S E T T I N G S
#
# -------------------------------------------------------------------
# JDBC connection settings. This is used by the JDBCToXML task that
# will create an XML database schema from JDBC metadata. These
# settings are also used by the SQL Ant task to initialize your
# Turbine system with the generated SQL.
#
# sameJavaName
#   If true, the JDBC task will set the javaName attribute for the tables 
#   and columns to be the same as SQL name.
# -------------------------------------------------------------------

#torque.database.createUrl = jdbc:postgresql://127.0.0.1:5432/template1
#torque.database.buildUrl = jdbc:postgresql://127.0.0.1:5432/bookstore
#torque.database.url = jdbc:postgresql://127.0.0.1:5432/bookstore
#torque.database.driver = org.postgresql.Driver
#torque.database.user = jvanzyl
#torque.database.password =
#torque.database.host = 127.0.0.1

torque.database.createUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.database.buildUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.database.url = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.database.driver = oracle.jdbc.OracleDriver
torque.database.user = shx3
torque.database.password = shx3
torque.database.host = 172.25.3.201

torque.sameJavaName = false

# Oracle specific schema
torque.database.schema = SHX3

4.1    Torque.properties
# -------------------------------------------------------------------
# $Id: Torque.master,v 1.5 2002/11/28 14:06:12 mpoeschl Exp $
#
# This is the configuration file for Torque.
#
# Note that strings containing "," (comma) characters must backslash
# escape the comma (i.e. '\,')
#
# -------------------------------------------------------------------

torque.applicationRoot = .

# -------------------------------------------------------------------
#
#  L O G G I N G
#
# -------------------------------------------------------------------
# We use Log4J for all Torque logging and we embed the log4j
# properties within our application configuration.
# -------------------------------------------------------------------

# This first category is required and the category
# must be named 'default'. This is used for all logging
# where an explicit category is not specified.

#log4j.category.org.apache.torque = ALL, org.apache.torque
#log4j.appender.org.apache.torque = org.apache.log4j.FileAppender
#log4j.appender.org.apache.torque.file = ${torque.applicationRoot}/logs/torque.log
#log4j.appender.org.apache.torque.append = true

log4j.category.org.apache.torque = info, org.apache.torque
log4j.appender.org.apache.torque = org.apache.log4j.ConsoleAppender
log4j.appender.org.apache.torque.layout = org.apache.log4j.PatternLayout
log4j.appender.org.apache.torque.layout.conversionPattern = %d [%t] %-5p %c - %m%n

# -------------------------------------------------------------------
#
#  T O R Q U E  P R O P E R T I E S
#
# -------------------------------------------------------------------
# These are your database settings. Look in the
# org.apache.torque.pool.* packages for more information.
#
# The parameters to connect to the default database.  You MUST
# configure these properly.
# -------------------------------------------------------------------

torque.database.default=shx3
torque.database.shx3.adapter=oracle

## Using torque's old pool
torque.dsfactory.shx3.factory=org.apache.torque.dsfactory.TorqueDataSourceFactory
torque.dsfactory.shx3.pool.defaultMaxConnections=10
torque.dsfactory.shx3.pool.maxExpiryTime=3600
torque.dsfactory.shx3.pool.connectionWaitTimeout=10
torque.dsfactory.shx3.connection.driver = oracle.jdbc.OracleDriver
torque.dsfactory.shx3.connection.url = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
torque.dsfactory.shx3.connection.user = shx3
torque.dsfactory.shx3.connection.password = shx3

## Using Jdbc2Pool
#torque.dsfactory.shx3.factory=\
#  org.apache.torque.dsfactory.Jdbc2PoolDataSourceFactory
#torque.dsfactory.shx3.pool.defaultMaxActive=10
#torque.dsfactory.shx3.pool.testOnBorrow=true
#torque.dsfactory.shx3.pool.validationQuery=SELECT 1
#torque.dsfactory.shx3.connection.driver = oracle.jdbc.OracleDriver
#torque.dsfactory.shx3.connection.url = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
#torque.dsfactory.shx3.connection.user = shx3
#torque.dsfactory.shx3.connection.password = shx3

## Using jndi
#torque.dsfactory.shx3.factory=org.apache.torque.dsfactory.JndiDataSourceFactory
#torque.dsfactory.shx3.jndi.path=jdbc/shx3
#torque.dsfactory.shx3.jndi.java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory
#torque.dsfactory.shx3.jndi.java.naming.factory.url.pkgs = org.apache.naming

#torque.dsfactory.shx3.datasource.classname=org.apache.torque.pool.TorqueClassicDataSource
#torque.dsfactory.shx3.datasource.dataSourceName=jdbc/DBshx3
#torque.dsfactory.shx3.datasource.jndiEnvironment.java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory
#torque.dsfactory.shx3.datasource.jndiEnvironment.java.naming.factory.url.pkgs = org.apache.naming
#torque.dsfactory.shx3.datasource.defaultMaxConnections=10

## ConnectionPoolDataSource
#torque.dsfactory.shx3.factory=org.apache.torque.dsfactory.JndiDataSourceFactory
#torque.dsfactory.shx3.jndi.path=jdbc/DBshx3
#torque.dsfactory.shx3.jndi.java.naming.factory.initial = org.apache.naming.java.javaURLContextFactory
#torque.dsfactory.shx3.jndi.java.naming.factory.url.pkgs = org.apache.naming
#torque.dsfactory.shx3.datasource.classname=org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS
#torque.dsfactory.shx3.datasource.driver = oracle.jdbc.OracleDriver
#torque.dsfactory.shx3.datasource.url = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
#torque.dsfactory.shx3.datasource.user = shx3
#torque.dsfactory.shx3.datasource.password = shx3

# Determines if the quantity column of the IDBroker's id_table should
# be increased automatically if requests for ids reaches a high
# volume.

torque.idbroker.cleverquantity=true

# Determines whether the managers cache instances of the business objects.
# And also whether the MethodResultCache will really cache results.

torque.manager.useCache = true

4.2    default.properties
# -------------------------------------------------------------------
#
#  D E F A U L T   P R O P E R T I E S
#
# -------------------------------------------------------------------
# This file maps old properties (and their default values) to the
# new properties to maintain backwards compatibility.
#
# Note: lib.dir/torque.lib.dir and build.properties/
# torque.contextProperties are set manually in the build-torque.xml
# file as they need to be defined before this file can be loaded from
# the classpath.
#
# Old properties that are commented out are just place holders to
# help organize things.
# -------------------------------------------------------------------

# -------------------------------------------------------------------
#
#  B A S I C   P R O P E R T I E S
#
# -------------------------------------------------------------------

torque.home = .

# project = bookstore
# database = postgresql
# targetPackage = org.apache.torque

project = shx3
database = oracle
targetPackage = net.emedchina.om

torque.project = ${project}
torque.database = ${database}
torque.targetPackage = ${targetPackage}
torque.runOnlyOnSchemaChange = false

# -------------------------------------------------------------------
#
#  D I R E C T O R I E S
#
# -------------------------------------------------------------------

outputDirectory = src
schemaDirectory = schema
templatePath = templates
useClasspath = false

torque.output.dir = ${torque.home}/${outputDirectory}
torque.schema.dir = ${torque.home}/${schemaDirectory}
torque.templatePath = ${templatePath}
torque.useClasspath = ${useClasspath}

torque.doc.dir = ${torque.output.dir}/doc
torque.java.dir = ${torque.output.dir}/java
torque.javadoc.dir = ${torque.output.dir}/javadoc
torque.ojb.dir = ${torque.output.dir}/ojb
torque.sql.dir = ${torque.output.dir}/sql
torque.omzip.dir = ${torque.output.dir}

# -------------------------------------------------------------------
#
#  D A T A B A S E   S E T T I N G S
#
# -------------------------------------------------------------------

# createDatabaseUrl = jdbc:postgresql://127.0.0.1:5432/template1
# buildDatabaseUrl = jdbc:postgresql://127.0.0.1:5432/bookstore
# databaseUrl = jdbc:postgresql://127.0.0.1:5432/bookstore
# databaseDriver = org.postgresql.Driver
# databaseUser = jvanzyl
# databasePassword =
# databaseHost = 127.0.0.1

# databaseSchema =
# databaseName =
database.manual.creation = false
sameJavaName = false

torque.database.createUrl = ${createDatabaseUrl}
torque.database.buildUrl = ${buildDatabaseUrl}
torque.database.url = ${databaseUrl}
torque.database.driver = ${databaseDriver}
torque.database.user = ${databaseUser}
torque.database.password = ${databasePassword}
torque.database.host = ${databaseHost}

torque.database.schema = ${databaseSchema}
torque.database.name = ${databaseName}
torque.database.manualCreation = ${database.manual.creation}
torque.saveJavaName = ${sameJavaName}

# -------------------------------------------------------------------
#
#  T E M P L A T E   V A R I A B L E S
#
# -------------------------------------------------------------------

addGetByNameMethod = true
addIntakeRetrievable = false
addSaveMethod = true
addTimeStamp = true
basePrefix = Base
complexObjectModel = true
useManagers = false
useClasspath = false

torque.addGetByNameMethod = ${addGetByNameMethod}
torque.addIntakeRetrievable = ${addIntakeRetrievable}
torque.retrievableInterface = org.apache.turbine.om.Retrievable
torque.addSaveMethod = ${addSaveMethod}
torque.addTimeStamp = ${addTimeStamp}
torque.basePrefix = ${basePrefix}
torque.complexObjectModel = ${complexObjectModel}
torque.saveException = Exception
torque.useClasspath = ${useClasspath}
torque.useManagers = ${useManagers}

torque.omzip.src.base = false
torque.omzip.src.extension = false
torque.omzip.bin.base = false
torque.omzip.bin.extension = false
torque.omzip.deleteFiles = false

torque.generateDeprecated = true

# -------------------------------------------------------------------
#
#  M I S C .   S E T T I N G S
#
# -------------------------------------------------------------------

idTableXMLFile =
documentationFormat = html
initialID = 101

torque.idTableXMLFile = ${idTableXMLFile}
torque.doc.format = ${documentationFormat}
torque.doc.html.normalFont = font-family: Verdana; font-size: 10pt;
torque.doc.html.fkColor = afe295
torque.initialID = ${initialID}

# -------------------------------------------------------------------
#
#  C O N T R O L   T E M P L A T E S
#
# -------------------------------------------------------------------

SQLControlTemplate = sql/base/Control.vm
OMControlTemplate = om/Control.vm
idTableControlTemplate = sql/id-table/Control.vm
DataDTDControlTemplate = data/Control.vm
DataDumpControlTemplate = data/dump/Control.vm
DataSQLControlTemplate = sql/load/Control.vm
DocControlTemplate = doc/Control.vm

torque.template.sql = ${SQLControlTemplate}
torque.template.om = ${OMControlTemplate}
torque.template.idTable = ${idTableControlTemplate}
torque.template.dataDtd = ${DataDTDControlTemplate}
torque.template.dataDump = ${DataDumpControlTemplate}
torque.template.dataSql = ${DataSQLControlTemplate}
torque.template.doc = ${DocControlTemplate}
torque.template.sqlDbInit = sql/db-init/Control.vm
torque.template.ojb = ojb/repository/Control.vm
torque.template.ojbModel = ojb/model/Control.vm

# -------------------------------------------------------------------
#
#  C O M P I L E   S E T T I N G S
#
# -------------------------------------------------------------------

src.dir = ${torque.java.dir}
build.dest = bin/classes
debug = on
deprecation = off
optimize = off

torque.compile.src.dir = ${src.dir}
torque.compile.build.dir = ${build.dest}
torque.compile.debug = ${debug}
torque.compile.deprecation = ${deprecation}
torque.compile.optimize = ${optimize}

# -------------------------------------------------------------------
#
#  I N C L U D E   A N D   E X C L U D E   S E T T I N G S
#
# -------------------------------------------------------------------

torque.schema.sql.includes = *-schema.xml
torque.schema.sql.excludes =
torque.schema.doc.includes = *-schema.xml
torque.schema.doc.excludes =
torque.schema.create-db.includes = *-schema.xml
torque.schema.create-db.excludes =
torque.schema.init-sql.includes = *-schema.xml
torque.schema.init-sql.excludes = id-table-schema.xml
torque.schema.om.includes = *-schema.xml
torque.schema.om.excludes = id-table-schema.xml
torque.schema.ojb.includes = *-schema.xml
torque.schema.ojb.excludes =

databaseSchema = ${project}-schema.xml
databaseName = ${project}

createDatabaseUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
buildDatabaseUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
databaseUrl = jdbc:oracle:thin:@172.25.3.201:1521:devgbk
databaseDriver = oracle.jdbc.OracleDriver
databaseUser = shx3
databasePassword = shx3
databaseHost = 172.25.3.201

4.3    shx3-schema.xml
<?xml version="1.0"?>
<!DOCTYPE database SYSTEM "http://jakarta.apache.org/turbine/dtd/database.dtd">
<!-- Autogenerated by JDBCToXMLSchema! -->
<databasename="shx3"defaultIdMethod="none"package="net.emedchina.om.plt"baseClass="net.emedchina.base.DataObject"basePeer="net.emedchina.base.Peer">

<tablename="TMP_TEST">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
        <columnname="NAME"size="200"type="VARCHAR"/>
        <columnname="LASTUPDATE"type="TIMESTAMP"/>
        <columnname="COL1"size="24"type="CHAR"/>
        <columnname="COL2"size="24"type="CHAR"/>
    </table>
    <tablename="TMP_CAT_REGION">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
    </table>
    <tablename="PLT_BIZ_REGION">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
        <columnname="CODE"size="24"type="CHAR"/>
        <columnname="FULL_NAME"size="100"type="VARCHAR"/>
        <columnname="ABBR_NAME"size="50"type="VARCHAR"/>
        <columnname="OWNER_PLAT"size="24"type="CHAR"/>
    </table>
    <tablename="PLT_BIZ_REGION_ELEMENT">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
        <columnname="BIZ_REGION_CODE"size="24"type="CHAR"/>
        <columnname="POLITICAL_REGION_CODE"size="24"type="CHAR"/>
        <columnname="POLITICAL_LEVEL"size="1"type="CHAR"/>
        <columnname="RELATION_MODE"size="1"type="CHAR"/>
        <foreign-keyforeignTable="PLT_BIZ_REGION">
            <referenceforeign="ID"local="BIZ_REGION_CODE"/>
        </foreign-key>
        <foreign-keyforeignTable="TMP_CAT_REGION">
            <referenceforeign="ID"local="POLITICAL_REGION_CODE"/>
        </foreign-key>
    </table>
    <tablename="PLT_PLATFORM">
        <columnname="ID"primaryKey="true"required="true"size="24"type="CHAR"/>
        <columnname="P_PLAT_ID"size="24"type="CHAR"/>
        <columnname="NAME"size="50"type="VARCHAR"/>
        <columnname="PLAT_TYPE"size="1"type="CHAR"/>
        <columnname="PLAT_STATUS"size="1"type="CHAR"/>
        <foreign-keyforeignTable="PLT_PLATFORM">
            <referenceforeign="ID"local="P_PLAT_ID"/>
        </foreign-key>
    </table>
</database>

Torque 3.0使用指南相关推荐

  1. oauth2_带有Spring Security的OAuth 2.0快速指南

    oauth2 "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验 ...

  2. [转载]Guice 1.0 用户指南

    http://code.google.com/p/google-guice/ 用 Guice 写 Java Guice 1.0 用户指南 (20070326 王咏刚 译自:http://docs.go ...

  3. Guice 1.0 用户指南

    http://code.google.com/p/google-guice/ 用 Guice 写 Java Guice 1.0 用户指南 (20070326 王咏刚 译自:http://docs.go ...

  4. 限时团购,6.5折:《C# 7.0 核心技术指南》

    大家好,经过近两年的翻译,<C# 7.0 核心技术指南>终于和大家见面了.全书由 ThoughtWorks 高级咨询师,资深 .NET 专家刘夏翻译.作为一本第七次再版的图书,此次翻译对书 ...

  5. 带有Spring Security的OAuth 2.0快速指南

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 在构建W ...

  6. 《SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架》一 3.13 故事

    本节书摘来自华章出版社<SAFe 4.0参考指南:精益软件与系统工程的规模化敏捷框架>一书中的第3章,第3.13节 作者[美]迪恩·莱芬(DeanLeffingwell),更多章节内容可以 ...

  7. 一文读懂服务器centos7.0安装指导指南(详细)

    一文读懂服务器centos7.0安装指导指南(详细) 一.服务器到货核对 服务器进行软件部署前,对其硬件性能和质量是否符合要求进行核对.核对内容主要包括服务器的外观和性能参数两方面,通过核对达到熟悉服 ...

  8. Asp.net MVC3.0 入门指南 6 审视编辑方法和视图

    审视编辑方法和视图 在这一节中,您将审视movie控制器生成的响应方法和视图.然后您将添加 一个自定义搜索页面. 运行程序并通过在URL追加/Moives浏览movie控制器.把鼠标悬停在Edit 链 ...

  9. python入门指南-python3.6.0入门指南(官方版).pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspPython python3.6.0入门指南(官方版).pdf7 ...

最新文章

  1. ACL 2022录用结果出炉:国内多支团队晒“战绩”,清华一实验组18篇入选
  2. python中关于sqlite3数据库删除数据的使用
  3. tomcat(2)--集群
  4. HDU2199,HDU2899,HDU1969,HDU2141--(简单二分)
  5. webserver之日志系统
  6. java之线程相关juc
  7. 三年Java开发经验,必须要掌握的知识技能树有哪些?
  8. edui 富文本编辑_React中使用UEditor百度富文本的方法
  9. ansible+ssh自动化运维
  10. quartz java 实现_Quartz使用-入门使用(java定时任务实现)
  11. 计算机去掉word2007,研习office 2007兼容包怎么卸载
  12. 巴特沃斯(Butterworth)滤波器 (1)
  13. 分享WPS office 2019 卸载方法:
  14. 复古儿童卡通温馨手绘风格趣味MOGRT图形动画标题pr模板
  15. no xxx to stop
  16. 微信群发消息怎么发?微信群发消息只需要4步?
  17. 微信公众号客服系统怎么生成能追踪效果的二维码?
  18. Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
  19. Python数据处理之一:数据读取
  20. Linux基础第一篇

热门文章

  1. 键盘口扫码枪在web页面的应用
  2. 软件架构设计杂记: 分层架构 与 PO、VO、DTO、BO、POJO、BO/DO、DAO
  3. 数独问题的Java语言求解
  4. 关于Nginx:Nginx在windows上安装及Nginx的配置和优化
  5. 电脑报2013年第10期
  6. 问道区块链_区块链学习_v1.0.0_持续更新。。。
  7. 2021职业健康体检项目有哪些?
  8. 空气质量在线检测平台 js 逆向)(aqistudy)
  9. 自己制作优化大师(win32 SDK)
  10. 图书管理系(附源码PPT)