亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

優秀的對象角色建模解決方案-Torque

2019-11-18 12:11:43
字體:
來源:轉載
供稿:網友

  目前對于J2EE應用中的Persistence Layer的解決方案很多,其中,最近從Apache Turbine中剝離處理的Torque是一個優秀的ORM(Object Relational Mapping,對象角色建模) 解決方案。
  
  
  
    主流的Persistence Layer解決方案
  
  
  
    隨著基于J2EE應用的日益增加,出現了很多Persistence Layer的解決方案。目前主要的解決方案有以下幾種:
  
  
  
    ◆ 自己編寫基于JDBC API的解決方案;
  
  
  
    ◆ 采用ObjectRational Mapping(ORM)工具或者是采用面向對象的數據庫(ODBMS);
  
  
  
    ◆ J2EE/Entity Bean CMP (container-managed persistence);
  
  
  
    ◆ JDO。
  
  
  
    JDBC
  
  
  
    在很多情況下,尤其是沒有采用良好的Persistence Layer解決方案的項目中,開發人員需要自己手動編寫SQL語句,同時還要考慮事務處理等問題。從而使得SQL語句散落在代碼中,可維護性很差。同時,由于每個項目都要重新編寫Persistence 相關的代碼,所以代碼可重用性差。另外要求開發人員對于SQL語法必須非常熟悉,否則調試也比較困難。
  
  
  
    使用JDBC的解決方案,數據必須存儲在關系型數據庫中。
  
  
  
    ORM或者ODBMS
  
  
  
    為了將開發人員從SQL語句中解脫出來,產生了很多ORM的工具。這些工具都比較簡單,并且提供了API支持。
  
  
  
    由于ORM工具比較多,它們采用的技術標準都不盡相同,而且沒有統一的接口,因此,它們在為開發人員提供方便的同時,也增加了一定的束縛。ORM技術是比較成熟的,而且已經有很多產品了。
  
  
  
    而ODBMS是近幾年發展起來的,并不十分成熟,而且也沒有得到廣泛的應用。目前,眾多ODBMS廠商正在關注JDO標準并加以實施。它可能在不久的將可以得到一定的推廣。
  
  
  
    使用ORM或者ODBMS的解決方案,數據也必須存儲在關系或者面向對象數據庫中。
  
  
  
    EJB CMP
  
  
  
    在J2EE的規范中,為EJB定義了兩種Persistence的解決方案:一種是BMP,另一種是CMP。其中CMP不需要將SQL語句加入到代碼中。
  
  
  
    目前,在采用J2EE的應用中,EJB CMP方式得到了廣泛應用。更加引人注重的是,隨著EJB規范的發展,CMP也包含了一些高級關系的內容。但是,CMP的使用比較復雜,對很多開發人員來說比較難以把握。而且,不是在所有的情況下都適合在系統中采用EJB。
  
  
  
    EJB提供了除了關系型數據庫以外,更多的存儲支持。
  
  
  
    JDO
  
  
  
  目前,有兩種類型的JDO實現,一種是Sun的JDO,另一種是Castor JDO,這兩者并不兼容。
  
  
  
    Sun JDO是Sun java Community PRocess給出的規范和參照實現。盡管JDO還有些不成熟,但它很有發展前景,而且填補了數據庫編程領域的一大空白。對Java開發人員而言,JDO為對象持久性提供了第一個標準化的、完全面向對象的方法。與此領域中的其它技術相比,JDO的優點是使用起來十分簡單,而且對原始的Java源代碼打亂程度最小。同時,Sun JDO對數據存儲類型是透明的。
  
  
  
    而Castor JDO是一個開源項目,從1999年開始開發。在開源的JDO項目中,它提供的功能是最強大的。盡管Castor JDO開發的比較早,但是,隨著Sun JDO的日益成熟,它的優勢越來越小。同時,Castor JDO只提供對RDMS的支持。
  
  
  
    從上面的分析我們可以看到,由于目前絕大多數應用系統的數據都是存儲在RDMS中,而且JDO目前還不十分完善,因此,在項目中還是應該采用成熟的ORM工具。
  
  
  
    Torque
  
  
  
    Torque是一種ORM的工具,它最早是Apache Jakarta Turbine項目的一部分,現在已經從Turbine中剝離出來,可以獨立使用。目前,它的版本是3.0。
  
  
  
    Torque的主要特性
  
  
  
    Torque主要包含兩部分:一部分是Generator,它可以產生應用需要的所有數據庫資源,包括sql和java文件;另外,Torque還提供了一個運行環境來運行產生的類。下面主要討論Torque 的Generator。
  
  
  
    1. 三個核心文件
  
  
  
    要利用Torque的Generator,必須配置好以下三個文件(Torque的安裝路徑為$Torque_home):
  
  
  
    ◆ $Torque_home/build.properties 存儲數據庫系統的屬性,主要有項目名稱、數據庫類型、數據庫鏈接URL、Driver、用戶名、密碼及主機名等。Torque利用該文件的屬性,建立與數據庫系統的連接。
  
  
  
    ◆ $Torque_home/schema/project-schema.xml、id-table-schema.xml 其中,project-schema.xml 存儲表結構信息;而id-table-schema.xml由Torque的IDBroker服務調用。
  
  
  
    ◆ $Torque_home/Torque.properties 存儲應用執行時,由Torque生成的對象模型代碼使用的屬性值。在生成數據庫系統資源的時候不需要這個文件。
  
  
  
    2. 核心任務
  
  
  
    利用Torque提供的Generator,可以完成下面的主要任務:
  
  
  
    ◆ sql 解析$Torque_home/schema/*.xml,生成對應的$Torque_home/src/sql/*.sql文件;
  
  
  
    ◆ doc 解析$Torque_home/schema/*.xml,生成對應的$Torque_home/src/sql/*.Html文件,描述數據庫結構;
  
  
  
    ◆ create-db 生成不同平臺上產生數據庫系統的腳本;
  
  
  
    ◆ insert-sql 執行$Torque_home/schema/*-schema.sql文件到指定數據庫;
  
  
  
    ◆ sql2xml 解析$Torque_home/schema/schema.sql文件,產生Torque對應的數據庫文件$Torque_home/schema/schema.xml;
  
  
  
    ◆ id-table-init-sql 根據$Torque_home/schema/id-table-schema.xml文件產生id表的初始化腳本文件;
  
  
  
    上述任務需要ANT的支持,運行命令為$Torque_home/ant-f build-torque.xml $taskname。
  
  
  
    3 .Peer
  
  
  
  Peer是Torque使用的ORM工具。它比其它的工具(例如Castor、Osage等)的層次要低。開發人員需要手工編寫一些代碼,但是這從一定意義上增加了靈活性。
  
  
  
    Peer利用Torque數據庫Adaptor類來建立與數據庫的連接。因為它支持主流的數據庫系統,所以,開發人員一般情況下不需要為數據庫系統編寫Adaptor。
  
  
  
    在建立了項目數據庫系統的Schema文件后,運行“ant -f build-torque.xml”。Torque為Schema 中的每個表的對象模型生成四個類,例如開發人員在project-schema.xml 中定義了Author表,則Torque生成的四個類為Author、AuthorPeer、 BaseAuthor、BaseAuthorPeer等。其中Author和AuthorPeer分別是BaseAuthor和BaseAuthorPeer 的子類。這兩個基類(BaseAuthor、BaseAuthorPeer)包含了Torque的生成邏輯,在開發中不應該修改。因為Torque會在再次生成對象模型時覆蓋這些文件,所以系統中的業務邏輯應該放在Author和AuthorPeer類中。
  
  
  
    在Torque中,AuthorPeer和BaseAuthorPeer稱為對等類(Peer Classes),而Author和BaseAuthor稱為數據對象(Data Objects)。對等類和數據對象之間的區別是:“對等類”封裝數據表信息,并提供靜態方法對表進行增加、刪除、修改記錄的操作;“數據對象”封裝表中的記錄信息,并對每個字段提供getters/mutators方法。
  
  
  
    4. Criteria
  
  
  
  Criteria是一對SQL查詢標準的抽象對象,開發人員利用它來封裝特定的SQL語句。Criteria實際上是SQL語句中域名和值之間的映射,默認的Comparator是等于(=)。同時,它還提供基本的Comparator,以及Join、Order by、Distinct等。更多的方法及屬性,請查看org.apache.torque.util.
  
  
  
  Criteria。
  
  
  
    Criteria提供了一般意義上的SQL功能,假如仍然不能滿足開發的需要,開發人員仍然可以手寫SQL語句。
  
  
  
    Torque在J2EE中的應用
  
  
  
    在Apache Jakarta的項目中,有很多Web 應用構架,其中Struts、Cocoon及Turbine是比較聞名的幾個。
  
  
  
  Torque作為數據庫抽象的工具,雖然是從Turbine中剝離出來的,但是它可以與其它的構架很好地結合,成為Persistence層的優秀解決方案。
  
  
  
    應用步驟
  
  
  
    在J2EE應用,使用Torque的步驟如下:
  
  
  
    1. 系統分析和設計,直至Business Object;
  
  
  
    2. 按照Business Object模型,形成數據庫腳本文件database.sql;
  
  
  
    3. 編寫$Torque_home/build.properties;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情国产日韩精品一区18| 91在线视频九色| 国产一区二区美女视频| 亚洲男女性事视频| 亚洲电影免费观看高清完整版| 另类视频在线观看| 美女精品视频一区| 成人激情视频在线播放| 91亚洲精品久久久久久久久久久久| 久久精品国产99国产精品澳门| 国产成人在线一区二区| 欧美性极品xxxx娇小| 中文字幕日韩在线视频| 日韩欧美高清视频| 97色在线视频观看| 欧美黑人极品猛少妇色xxxxx| 中文字幕在线亚洲| 久久全国免费视频| 亚洲视频电影图片偷拍一区| 日韩欧中文字幕| 国产剧情日韩欧美| 亚洲精品不卡在线| 97视频在线观看免费高清完整版在线观看| 日本不卡视频在线播放| 亚洲精品网址在线观看| 欧美一级淫片aaaaaaa视频| 热99精品里视频精品| 91精品美女在线| 日韩av网站电影| 精品久久久久久久久久| 91tv亚洲精品香蕉国产一区7ujn| 成人午夜激情免费视频| 91精品免费久久久久久久久| 亚洲国产精品久久久| 亚洲免费av网址| 97视频在线观看播放| 精品久久香蕉国产线看观看gif| 91av视频在线免费观看| 欧美人在线观看| 68精品国产免费久久久久久婷婷| 国产精品丝袜高跟| 亚洲精品电影在线| 成人黄色免费网站在线观看| 亚洲精品免费一区二区三区| 91精品国产777在线观看| 毛片精品免费在线观看| 欧美日韩亚洲高清| 日韩有码视频在线| 国产一区二区三区毛片| 欧美另类99xxxxx| 欧美视频中文字幕在线| 欧美激情精品久久久久久久变态| 亚洲精品国产免费| 91亚洲精华国产精华| 7777kkkk成人观看| 久久精品99无色码中文字幕| 91精品视频在线免费观看| 国产精品爽爽ⅴa在线观看| 久久伊人色综合| 在线观看日韩www视频免费| 一区二区三区视频在线| 欧美第一页在线| 亚洲国产成人一区| 一个人看的www久久| 亚洲xxxx做受欧美| 国产成+人+综合+亚洲欧洲| 在线观看精品自拍私拍| 精品高清美女精品国产区| 成人福利网站在线观看| 国产亚洲精品激情久久| 九九九热精品免费视频观看网站| 亚洲区一区二区| 91亚洲精品视频| 欧美激情在线有限公司| 国产精品网址在线| 亚洲成人动漫在线播放| 亚洲人成在线电影| 欧美久久精品午夜青青大伊人| 亚洲精品日韩在线| 欧美电影免费看| 91成人在线播放| 综合av色偷偷网| 亚洲精品国产精品国自产在线| 国产一区私人高清影院| 91免费国产视频| 91精品久久久久久久久久久| 1769国内精品视频在线播放| 国产亚洲人成网站在线观看| 动漫精品一区二区| 国产视频久久久久久久| 日本一区二区三区在线播放| 国产丝袜一区二区三区免费视频| 亚洲a一级视频| 久久精品99国产精品酒店日本| 中文字幕精品www乱入免费视频| 亚洲国产日韩精品在线| 久久青草精品视频免费观看| 久久久久成人精品| 91国偷自产一区二区三区的观看方式| 精品视频久久久久久| 97在线视频免费观看| 欧美黄色免费网站| 欧美在线精品免播放器视频| 欧美电影《睫毛膏》| 国产精品 欧美在线| 亚洲国产精品福利| 日韩高清免费观看| 欧美日韩国产影院| 日本欧美爱爱爱| 国产精品美女主播| 欧洲日本亚洲国产区| 日韩精品在线观| 欧美黄色三级网站| 久久久久久久久久久亚洲| 亚洲人成电影网站色xx| 中文字幕综合在线| 欧美精品做受xxx性少妇| 久久久免费精品视频| 国产91ⅴ在线精品免费观看| 精品色蜜蜜精品视频在线观看| 亚洲精品一区二区三区不| 日韩在线视频观看| 欧美激情手机在线视频| 久久男人资源视频| 日本精品中文字幕| 国产欧美一区二区| 成人信息集中地欧美| 91在线观看免费高清完整版在线观看| 国产亚洲一级高清| 日韩在线中文字幕| 欧美日韩在线视频一区二区| 亚洲精品电影久久久| 欧美大尺度激情区在线播放| 热久久免费视频精品| 久久中文字幕国产| 久久99精品久久久久久噜噜| 欧美激情视频网站| 日韩中文视频免费在线观看| 亚洲欧洲av一区二区| 欧美xxxx做受欧美| 日韩性生活视频| 国产精品第100页| 国产精品久久久久久久久男| 国产精品啪视频| 亚洲aaaaaa| 久久理论片午夜琪琪电影网| 亚洲一区二区三区在线视频| 日韩欧美国产视频| 亚洲理论在线a中文字幕| 日韩在线观看免费全| 成人做爰www免费看视频网站| 欧美成人一区二区三区电影| 欧美色欧美亚洲高清在线视频| 亚洲精品一区中文字幕乱码| 欧美精品久久一区二区| 91国产在线精品| 91精品国产91久久久久久吃药| 2019中文字幕在线免费观看| 亚洲女人初尝黑人巨大| 91久久久久久| 亚洲欧美日韩国产中文专区| 亚洲免费视频观看| 亚洲精品视频免费| 亚洲天堂久久av|