<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——?dú)g迎訪問(wèn)rogerfan的博客,常來(lái)《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來(lái)的快樂(lè)!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問(wèn)題請(qǐng)與我聯(lián)系。

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
    Apache Torque 是一個(gè)使用關(guān)系數(shù)據(jù)庫(kù)作為存儲(chǔ)手段的Java應(yīng)用程序持久化工具。Torque是一個(gè)開(kāi)源項(xiàng)目,由Web應(yīng)用程序框架
      Jakarta Apache Turbine 發(fā)展而來(lái),但現(xiàn)在已完全獨(dú)立于Turbine。通過(guò)JDBC,Torque支持大多數(shù)流行的開(kāi)源商業(yè)數(shù)據(jù)庫(kù),包括Oracle、Microsoft SQL Server、IBM DB/2、MySQL以及PostgreSQL。
      
      
      
      可以用Torque來(lái)為數(shù)據(jù)訪問(wèn)層聲成Java代碼。也可以通過(guò)它從現(xiàn)存數(shù)據(jù)庫(kù)中取出Java對(duì)象(逆向工程),前提是你擁有一個(gè)現(xiàn)存的數(shù)據(jù)訪問(wèn)對(duì)象(DAO)層。對(duì)于新的項(xiàng)目來(lái)說(shuō),如果你用XML為你的業(yè)務(wù)對(duì)象建模,Torque將生成創(chuàng)建數(shù)據(jù)庫(kù)表的SQL腳本以及用來(lái)讀取、寫(xiě)入和查詢(xún)數(shù)據(jù)的Java對(duì)象。
      
      J2EE程序員對(duì)于持久化層有很多不錯(cuò)的選擇。( 這里 列舉了其它的方法。)我們的重點(diǎn)是Torque所提供的功能以及怎樣使它工作起來(lái)。本文的示例代碼可以 在此 下載。
      
      使用Torque生成數(shù)據(jù)訪問(wèn)層和值對(duì)象
      Torque有兩大組成部分——生成組件和運(yùn)行時(shí)組件。可以用Torque來(lái)生成值對(duì)象、SQL表的創(chuàng)建腳本以及數(shù)據(jù)訪問(wèn)層。 Apache Ant
      或者 Apache Maven 都能運(yùn)行Torque生成器。在本文中,我選用了Ant。
      
      Torque能輕松維護(hù)代碼是因?yàn)橹祵?duì)象、數(shù)據(jù)訪問(wèn)對(duì)象和SQL代碼全部是從一個(gè)被稱(chēng)為schema的XML文件生成的。將此文件命名為yourprojectname-schema.xml并將其放到Torque安裝目錄的schema子目錄中。這個(gè)XML文件包含了你的每個(gè)值對(duì)象,包括名字、屬性以及和其它對(duì)象的關(guān)系。這里的例子用到的XML schema文件叫作builder-schema.xml,在示例代碼中可以找到。注意在這里我們建立了一個(gè)從ProdUCt表到Vendor表的外鍵參考。這是因?yàn)橐粋€(gè)供應(yīng)商可以有很多產(chǎn)品,而每種產(chǎn)品都只有一個(gè)供應(yīng)商。
      
      另一個(gè)重要的配置文件是Torque安裝目錄下的build.properties文件。必須編輯這個(gè)文件來(lái)添加項(xiàng)目名、使用的數(shù)據(jù)庫(kù)、必須的JDBC連接信息以及生成的類(lèi)文件該放到那個(gè)包中。這個(gè)文件也包含在供下載的示例代碼中。
      
      在數(shù)據(jù)庫(kù)管理工具中創(chuàng)建一個(gè)庫(kù),確保你的Apache Ant版本是1.5以上。將驅(qū)動(dòng)JDBC的JAR文件放到Torque安裝目錄的lib子目錄中。然后在Torque目錄中運(yùn)行下面的命令:
      
      ant -f build-torque.xml
      
      Torque應(yīng)該將所有生成的類(lèi)文件放到主安裝目錄下的src/java目錄中。而SQL腳本放在src/sql目錄中。
      生成的Java類(lèi)和SQL腳本
      
      
      Torque將為schema XML文件中的每個(gè)對(duì)象創(chuàng)建5個(gè)Java類(lèi):
      
      Base Peer類(lèi)
      Peer類(lèi)(Base Peer類(lèi)的擴(kuò)展)
      Base Data Object類(lèi)
      Data Object類(lèi)(Base Data Object類(lèi)的擴(kuò)展)
      Map Builder類(lèi)
      由于你可以編輯schema并返回生成的腳本,必須有一種方法來(lái)還原你所做的改動(dòng)。Torque通過(guò)創(chuàng)建基類(lèi)來(lái)解決這個(gè)問(wèn)題,基類(lèi)每次都重新生成,而擴(kuò)展類(lèi)只在不存在時(shí)才生成。應(yīng)該將所有的代碼添加到擴(kuò)展類(lèi)中。而不應(yīng)該編輯Base Peer、Base Data Object和Map Builder類(lèi)。
      
      Base Data Object類(lèi)包含了獲取和設(shè)置對(duì)象屬性以及將對(duì)象存入數(shù)據(jù)庫(kù)的方法。BaseVendor.java就是一個(gè)例子。Base Peer類(lèi)包含了從數(shù)據(jù)庫(kù)中獲取、選擇、插入和刪除數(shù)據(jù)對(duì)象的方法。其例子是BaseVendorPeer.java。MapBuilder類(lèi)被Peer類(lèi)使用。
      
      Peer類(lèi)和Data Object類(lèi)是空的,必要的話(huà)可以添加或覆蓋方法來(lái)實(shí)現(xiàn)你的業(yè)務(wù)邏輯。(參見(jiàn)下載文件中的VendorPeer.java和Vendor.java。)
      
      創(chuàng)建的SQL腳本是針對(duì)你選用的數(shù)據(jù)庫(kù)的。每個(gè)數(shù)據(jù)庫(kù)都有一些微妙的特性,Torque必須處理全部這些。如果要更換數(shù)據(jù)庫(kù)的話(huà),更新build.properties中的信息并重新生成類(lèi)和SQL腳本。主要的SQL腳本生成在builder-schema.sql文件中。如果需要的話(huà),Torque還能夠運(yùn)行SQL腳本。如果選擇了Torque ID Broker方法(下面將會(huì)講到)那么要確信你還對(duì)數(shù)據(jù)庫(kù)運(yùn)行了第二個(gè)ID方法。
      
      Criteria類(lèi)
      在Torque中,使用名為Criteria的類(lèi)來(lái)模擬SQL的WHERE語(yǔ)句。創(chuàng)建一個(gè)新的Criteria對(duì)象,并使用其方法來(lái)向它添加限制條件。
      
      ID方法
      Torque可以使用很多方法來(lái)為數(shù)據(jù)庫(kù)中的對(duì)象生成主鍵。這個(gè)例子中,我們使用Torque的ID Broker方法來(lái)生成鍵。這并不依賴(lài)數(shù)據(jù)庫(kù)的兼容性。如果想利用數(shù)據(jù)庫(kù)的內(nèi)建功能,可以使用本地方法。每種數(shù)據(jù)庫(kù)都用不同的方法來(lái)為表中的每條記錄創(chuàng)建唯一的主鍵。也可以讓Torque不為表中的記錄聲稱(chēng)主鍵。編寫(xiě)一個(gè)有效對(duì)象映射最難的地方是將數(shù)據(jù)庫(kù)的主鍵和一個(gè)單獨(dú)的對(duì)象實(shí)例聯(lián)系起來(lái),而使用Torque卻使它變得相當(dāng)輕松。
      
      在應(yīng)用程序中集成Torque
      一旦數(shù)據(jù)庫(kù)設(shè)置好并且擁有了生成類(lèi),就可以將Torque運(yùn)用到程序中了。編輯Torque.properties文件以使用JDBC連接信息和項(xiàng)目名稱(chēng)(builder)。確信在程序中用Torque.init()方法對(duì)Torque進(jìn)行初始化。對(duì)于我們例子程序來(lái)說(shuō),將示范Vender和Product對(duì)象之間的一對(duì)多聯(lián)系。我們還將使用Peer類(lèi)來(lái)銷(xiāo)毀Product對(duì)象。要獲取更多的信息,可以到 Troque Web Site 去查詢(xún)生成類(lèi)的方法。
    posted on 2008-05-22 11:51 rogerfan 閱讀(374) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 【Torque學(xué)習(xí)】
    主站蜘蛛池模板: 亚洲国产综合91精品麻豆| 免费看国产成年无码AV片| 久青草视频97国内免费影视| 久久亚洲中文无码咪咪爱| 亚洲欧洲无码AV不卡在线| 亚洲av永久中文无码精品| 亚洲色无码国产精品网站可下载| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲日韩乱码久久久久久| 亚洲国产模特在线播放| 亚洲春黄在线观看| 亚洲va在线va天堂成人| 亚洲精品一二三区| 小说区亚洲自拍另类| 一本久久A久久免费精品不卡| 一个人看的www在线免费视频| 久久成人18免费网站| 国产99视频精品免费专区| 16女性下面无遮挡免费| 免费无码A片一区二三区 | 国产亚洲玖玖玖在线观看 | 久久99国产亚洲高清观看首页| 亚洲av永久无码精品表情包| 中文字幕亚洲综合精品一区| 亚洲AV一二三区成人影片| 亚洲七久久之综合七久久| 春意影院午夜爽爽爽免费| 大地资源网高清在线观看免费| 最近新韩国日本免费观看 | 最近免费最新高清中文字幕韩国| 少妇高潮太爽了在线观看免费| 国产精品另类激情久久久免费| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 亚洲精品网站在线观看你懂的| 亚洲一级黄色大片| 国产精品手机在线亚洲| 国产在线观看无码免费视频| 国产2021精品视频免费播放| 国产免费变态视频网址网站| 人人狠狠综合久久亚洲88| 亚洲精品国产成人|