国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

用ApacheTorque項目來提升Java程序的性能

2019-11-18 11:13:16
字體:
供稿:網(wǎng)友

  Apache Torque 是一個使用關(guān)系數(shù)據(jù)庫作為存儲手段的java應(yīng)用程序持久化工具。Torque是一個開源項目,由Web應(yīng)用程序框架
  Jakarta Apache Turbine 發(fā)展而來,但現(xiàn)在已完全獨立于Turbine。通過JDBC,Torque支持大多數(shù)流行的開源商業(yè)數(shù)據(jù)庫,包括Oracle、Microsoft SQL Server、IBM DB/2、MySQL以及PostgreSQL。
  
  
  
  可以用Torque來為數(shù)據(jù)訪問層聲成Java代碼。也可以通過它從現(xiàn)存數(shù)據(jù)庫中取出Java對象(逆向工程),前提是你擁有一個現(xiàn)存的數(shù)據(jù)訪問對象(DAO)層。對于新的項目來說,假如你用xml為你的業(yè)務(wù)對象建模,Torque將生成創(chuàng)建數(shù)據(jù)庫表的SQL腳本以及用來讀取、寫入和查詢數(shù)據(jù)的Java對象。
  
  J2EE程序員對于持久化層有很多不錯的選擇。( 這里 列舉了其它的方法。)我們的重點是Torque所提供的功能以及怎樣使它工作起來。本文的示例代碼可以 在此 下載。
  
  使用Torque生成數(shù)據(jù)訪問層和值對象
  Torque有兩大組成部分――生成組件和運行時組件。可以用Torque來生成值對象、SQL表的創(chuàng)建腳本以及數(shù)據(jù)訪問層。 Apache Ant
  或者 Apache Maven 都能運行Torque生成器。在本文中,我選用了Ant。
  
  Torque能輕松維護代碼是因為值對象、數(shù)據(jù)訪問對象和SQL代碼全部是從一個被稱為schema的XML文件生成的。將此文件命名為yourPRojectname-schema.xml并將其放到Torque安裝目錄的schema子目錄中。這個XML文件包含了你的每個值對象,包括名字、屬性以及和其它對象的關(guān)系。這里的例子用到的XML schema文件叫作builder-schema.xml,在示例代碼中可以找到。注重在這里我們建立了一個從ProdUCt表到Vendor表的外鍵參考。這是因為一個供給商可以有很多產(chǎn)品,而每種產(chǎn)品都只有一個供給商。
  
  另一個重要的配置文件是Torque安裝目錄下的build.properties文件。必須編輯這個文件來添加項目名、使用的數(shù)據(jù)庫、必須的JDBC連接信息以及生成的類文件該放到那個包中。這個文件也包含在供下載的示例代碼中。
  
  在數(shù)據(jù)庫治理工具中創(chuàng)建一個庫,確保你的Apache Ant版本是1.5以上。將驅(qū)動JDBC的JAR文件放到Torque安裝目錄的lib子目錄中。然后在Torque目錄中運行下面的命令:
  
  ant -f build-torque.xml
  
  Torque應(yīng)該將所有生成的類文件放到主安裝目錄下的src/java目錄中。而SQL腳本放在src/sql目錄中。
  生成的Java類和SQL腳本
  
  
  Torque將為schema XML文件中的每個對象創(chuàng)建5個Java類:
  
  Base Peer類
  Peer類(Base Peer類的擴展)
  Base Data Object類
  Data Object類(Base Data Object類的擴展)
  Map Builder類
  由于你可以編輯schema并返回生成的腳本,必須有一種方法來還原你所做的改動。Torque通過創(chuàng)建基類來解決這個問題,基類每次都重新生成,而擴展類只在不存在時才生成。應(yīng)該將所有的代碼添加到擴展類中。而不應(yīng)該編輯Base Peer、Base Data Object和Map Builder類。
  
  Base Data Object類包含了獲取和設(shè)置對象屬性以及將對象存入數(shù)據(jù)庫的方法。BaseVendor.java就是一個例子。Base Peer類包含了從數(shù)據(jù)庫中獲取、選擇、插入和刪除數(shù)據(jù)對象的方法。其例子是BaseVendorPeer.java。MapBuilder類被Peer類使用。
  
  Peer類和Data Object類是空的,必要的話可以添加或覆蓋方法來實現(xiàn)你的業(yè)務(wù)邏輯。(參見下載文件中的VendorPeer.java和Vendor.java。)
  
  創(chuàng)建的SQL腳本是針對你選用的數(shù)據(jù)庫的。每個數(shù)據(jù)庫都有一些微妙的特性,Torque必須處理全部這些。假如要更換數(shù)據(jù)庫的話,更新build.properties中的信息并重新生成類和SQL腳本。主要的SQL腳本生成在builder-schema.sql文件中。假如需要的話,Torque還能夠運行SQL腳本。假如選擇了Torque ID Broker方法(下面將會講到)那么要確信你還對數(shù)據(jù)庫運行了第二個ID方法。
  
  Criteria類
  在Torque中,使用名為Criteria的類來模擬SQL的WHERE語句。創(chuàng)建一個新的Criteria對象,并使用其方法來向它添加限制條件。
  
  ID方法
  Torque可以使用很多方法來為數(shù)據(jù)庫中的對象生成主鍵。這個例子中,我們使用Torque的ID Broker方法來生成鍵。這并不依靠數(shù)據(jù)庫的兼容性。假如想利用數(shù)據(jù)庫的內(nèi)建功能,可以使用本地方法。每種數(shù)據(jù)庫都用不同的方法來為表中的每條記錄創(chuàng)建唯一的主鍵。也可以讓Torque不為表中的記錄聲稱主鍵。編寫一個有效對象映射最難的地方是將數(shù)據(jù)庫的主鍵和一個單獨的對象實例聯(lián)系起來,而使用Torque卻使它變得相當輕松。
  
  在應(yīng)用程序中集成Torque
  一旦數(shù)據(jù)庫設(shè)置好并且擁有了生成類,就可以將Torque運用到程序中了。編輯Torque.properties文件以使用JDBC連接信息和項目名稱(builder)。確信在程序中用Torque.init()方法對Torque進行初始化。對于我們例子程序來說,將示范Vender和Product對象之間的一對多聯(lián)系。我們還將使用Peer類來銷毀Product對象。要獲取更多的信息,可以到 Troque Web Site 去查詢生成類的方法。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 滨州市| 图们市| 兴城市| 太白县| 赤峰市| 嘉禾县| 隆回县| 天镇县| 水富县| 句容市| 平塘县| 北碚区| 大厂| 冀州市| 泽州县| 唐山市| 永善县| 鸡东县| 肇州县| 册亨县| 固始县| 虎林市| 杂多县| 屯昌县| 平邑县| 和静县| 烟台市| 长宁县| 白朗县| 永宁县| 墨竹工卡县| 连江县| 奇台县| 五莲县| 房山区| 鹤壁市| 宜都市| 吴桥县| 涞水县| 云霄县| 吉水县|