小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ibatis介紹

 思奇劍 2006-11-30

關(guān)鍵字:   ibatis介紹    
相對(duì)Hibernate和Apache OJB 等“一站式”ORM解決方案而言,ibatis 是一種“半
自動(dòng)化”的ORM實(shí)現(xiàn)。
所謂“半自動(dòng)”,可能理解上有點(diǎn)生澀。縱觀目前主流的ORM,無(wú)論Hibernate 還是
Apache OJB,都對(duì)數(shù)據(jù)庫(kù)結(jié)構(gòu)提供了較為完整的封裝,提供了從POJO 到數(shù)據(jù)庫(kù)表的全
套映射機(jī)制。程序員往往只需定義好了POJO 到數(shù)據(jù)庫(kù)表的映射關(guān)系,即可通過(guò)Hibernate
或者OJB 提供的方法完成持久層操作。程序員甚至不需要對(duì)SQL 的熟練掌握,
Hibernate/OJB 會(huì)根據(jù)制定的存儲(chǔ)邏輯,自動(dòng)生成對(duì)應(yīng)的SQL 并調(diào)用JDBC 接口加以執(zhí)
行。
大多數(shù)情況下(特別是對(duì)新項(xiàng)目,新系統(tǒng)的開(kāi)發(fā)而言),這樣的機(jī)制無(wú)往不利,大有一
統(tǒng)天下的勢(shì)頭。但是,在一些特定的環(huán)境下,這種一站式的解決方案卻未必靈光。
在筆者的系統(tǒng)咨詢工作過(guò)程中,常常遇到以下情況:
1. 系統(tǒng)的部分或全部數(shù)據(jù)來(lái)自現(xiàn)有數(shù)據(jù)庫(kù),處于安全考慮,只對(duì)開(kāi)發(fā)團(tuán)隊(duì)提供幾
條Select SQL(或存儲(chǔ)過(guò)程)以獲取所需數(shù)據(jù),具體的表結(jié)構(gòu)不予公開(kāi)。
2. 開(kāi)發(fā)規(guī)范中要求,所有牽涉到業(yè)務(wù)邏輯部分的數(shù)據(jù)庫(kù)操作,必須在數(shù)據(jù)庫(kù)層由
存儲(chǔ)過(guò)程實(shí)現(xiàn)(就筆者工作所面向的金融行業(yè)而言,工商銀行、中國(guó)銀行、交
通銀行,都在開(kāi)發(fā)規(guī)范中嚴(yán)格指定)
3. 系統(tǒng)數(shù)據(jù)處理量巨大,性能要求極為苛刻,這往往意味著我們必須通過(guò)經(jīng)過(guò)高
度優(yōu)化的SQL語(yǔ)句(或存儲(chǔ)過(guò)程)才能達(dá)到系統(tǒng)性能設(shè)計(jì)指標(biāo)。
面對(duì)這樣的需求,再次舉起Hibernate 大刀,卻發(fā)現(xiàn)刀鋒不再銳利,甚至無(wú)法使用,
奈何?恍惚之際,只好再摸出JDBC 準(zhǔn)備拼死一搏……,說(shuō)得未免有些凄涼,直接使用JDBC
進(jìn)行數(shù)據(jù)庫(kù)操作實(shí)際上也是不錯(cuò)的選擇,只是拖沓的數(shù)據(jù)庫(kù)訪問(wèn)代碼,乏味的字段讀取操作
令人厭煩。
“半自動(dòng)化”的ibatis,卻剛好解決了這個(gè)問(wèn)題。
這里的“半自動(dòng)化”,是相對(duì)Hibernate等提供了全面的數(shù)據(jù)庫(kù)封裝機(jī)制的“全自動(dòng)化”
ORM 實(shí)現(xiàn)而言,“全自動(dòng)”ORM 實(shí)現(xiàn)了POJO 和數(shù)據(jù)庫(kù)表之間的映射,以及SQL 的自動(dòng)
生成和執(zhí)行。而ibatis 的著力點(diǎn),則在于POJO 與SQL之間的映射關(guān)系。也就是說(shuō),ibatis
并不會(huì)為程序員在運(yùn)行期自動(dòng)生成SQL 執(zhí)行。具體的SQL 需要程序員編寫,然后通過(guò)映
射配置文件,將SQL所需的參數(shù),以及返回的結(jié)果字段映射到指定POJO。
使用ibatis 提供的ORM機(jī)制,對(duì)業(yè)務(wù)邏輯實(shí)現(xiàn)人員而言,面對(duì)的是純粹的Java對(duì)象,
這一層與通過(guò)Hibernate 實(shí)現(xiàn)ORM 而言基本一致,而對(duì)于具體的數(shù)據(jù)操作,Hibernate
會(huì)自動(dòng)生成SQL 語(yǔ)句,而ibatis 則要求開(kāi)發(fā)者編寫具體的SQL 語(yǔ)句。相對(duì)Hibernate等
“全自動(dòng)”ORM機(jī)制而言,ibatis 以SQL開(kāi)發(fā)的工作量和數(shù)據(jù)庫(kù)移植性上的讓步,為系統(tǒng)
設(shè)計(jì)提供了更大的自由空間。作為“全自動(dòng)”ORM實(shí)現(xiàn)的一種有益補(bǔ)充,ibatis 的出現(xiàn)顯
得別具意義。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多