Torque 3.0使用指南
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!?-->
<database
????name="shx3"
???????????defaultIdMethod="none"
???????????package="net.emedchina.om.plt"
???????????baseClass="net.emedchina.base.DataObject"
???????????basePeer="net.emedchina.base.Peer">????
????<table?name="TMP_TEST">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????????<column?name="NAME"?size="200"?type="VARCHAR"/>
????????<column?name="LASTUPDATE"?type="TIMESTAMP"/>
????????<column?name="COL1"?size="24"?type="CHAR"/>
????????<column?name="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!?-->
<database
????name="shx3"
???????????defaultIdMethod="none"
???????????package="net.emedchina.om.plt"
???????????baseClass="net.emedchina.base.DataObject"
???????????basePeer="net.emedchina.base.Peer">????
????<table?name="TMP_TEST">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????????<column?name="NAME"?size="200"?type="VARCHAR"/>
????????<column?name="LASTUPDATE"?type="TIMESTAMP"/>
????????<column?name="COL1"?size="24"?type="CHAR"/>
????????<column?name="COL2"?size="24"?type="CHAR"/>
????</table>
????<table?name="TMP_CAT_REGION">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????</table>
????<table?name="PLT_BIZ_REGION">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????????<column?name="CODE"?size="24"?type="CHAR"/>
????????<column?name="FULL_NAME"?size="100"?type="VARCHAR"/>
????????<column?name="ABBR_NAME"?size="50"?type="VARCHAR"/>
????????<column?name="OWNER_PLAT"?size="24"?type="CHAR"/>
????</table>
????<table?name="PLT_BIZ_REGION_ELEMENT">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????????<column?name="BIZ_REGION_CODE"?size="24"?type="CHAR"/>
????????<column?name="POLITICAL_REGION_CODE"?size="24"?type="CHAR"/>
????????<column?name="POLITICAL_LEVEL"?size="1"?type="CHAR"/>
????????<column?name="RELATION_MODE"?size="1"?type="CHAR"/>
????????<foreign-key?foreignTable="PLT_BIZ_REGION">
????????????<reference?foreign="ID"?local="BIZ_REGION_CODE"/>
????????</foreign-key>
????????<foreign-key?foreignTable="TMP_CAT_REGION">
????????????<reference?foreign="ID"?local="POLITICAL_REGION_CODE"/>
????????</foreign-key>
????</table>
????<table?name="PLT_PLATFORM">
????????<column?name="ID"?primaryKey="true"?required="true"?size="24"?type="CHAR"/>
????????<column?name="P_PLAT_ID"?size="24"?type="CHAR"/>
????????<column?name="NAME"?size="50"?type="VARCHAR"/>
????????<column?name="PLAT_TYPE"?size="1"?type="CHAR"/>
????????<column?name="PLAT_STATUS"?size="1"?type="CHAR"/>
????????<foreign-key?foreignTable="PLT_PLATFORM">
????????????<reference?foreign="ID"?local="P_PLAT_ID"/>
????????</foreign-key>
????</table>
</database>
總結
以上是生活随笔為你收集整理的Torque 3.0使用指南的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次长虹IHO3000拆机学习
- 下一篇: 【转】CTO专访:坚守还是追新,开发者如