ibatis study

相對Hibernate和Apache OJB 等“一站式”ORM解決方案而言,ibatis 是一種“半
自動化”的ORM實現。

大多數情況下(特別是對新項目,新系統的開發而言),這樣的機制無往不利,大有一
統天下的勢頭。但是,在一些特定的環境下,這種一站式的解決方案卻未必靈光。
在筆者的系統諮詢工作過程中,常常遇到以下情況:
1. 系統的部分或全部數據來自現有數據庫,處於安全考慮,只對開發團隊提供幾
條Select SQL(或存儲過程)以獲取所需數據,具體的表結構不予公開。
2. 開發規範中要求,所有牽涉到業務邏輯部分的數據庫操作,必須在數據庫層由
存儲過程實現(就筆者工作所面向的金融行業而言,工商銀行、中國銀行、交
通銀行,都在開發規範中嚴格指定)
3. 系統數據處理量巨大,性能要求極爲苛刻,這往往意味着我們必須通過經過高
度優化的SQL語句(或存儲過程)才能達到系統性能設計指標。
面對這樣的需求,再次舉起Hibernate 大刀,卻發現刀鋒不再銳利,甚至無法使用,
奈何?恍惚之際,只好再摸出JDBC 準備拼死一搏……,說得未免有些淒涼,直接使用JDBC
進行數據庫操作實際上也是不錯的選擇,只是拖沓的數據庫訪問代碼,乏味的字段讀取操作
令人厭煩。
“半自動化”的ibatis,卻剛好解決了這個問題。

 

這裏的“半自動化”,是相對Hibernate等提供了全面的數據庫封裝機制的“全自動化”
ORM 實現而言,“全自動”ORM 實現了POJO 和數據庫表之間的映射,以及SQL 的自動
生成和執行。而ibatis 的着力點,則在於POJO 與SQL之間的映射關係。也就是說,ibatis
並不會爲程序員在運行期自動生成SQL 執行。具體的SQL 需要程序員編寫,然後通過映
射配置文件,將SQL所需的參數,以及返回的結果字段映射到指定POJO。

發佈了36 篇原創文章 · 獲贊 1 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章