開源ORM框架iBATIS

2021-06-11 13:20:09 字數 1314 閱讀 4414

除了hibernate外,另一流行的orm框架ibatis也使用廣泛。兩者的不同的在於,hibernate提供的是「一站式」的orm解決方案,而ibatis提供的是「半自動化」的orm實現。

hibernate提供了從pojo到資料庫表的全套對映機制,開發人員往往只需要定義好pojo到資料庫表的對映關係,即可通過hibernate提供的方法完成持久層操作,甚至不需要對sql的熟練掌握,因為hibernate會自動生成對應的sql,並呼叫jdbc介面加以執行。但是hibernate這種「一站式」的解決方法並不適用於所有的情況,例如:

1、有些系統基於安全考慮,只對開發人員提供查詢sql(或儲存過程)以獲取所需資料,具體的表結構不予公開。

2、有些系統要求所有牽涉到業務邏輯部分的資料庫操作必須在資料庫層由儲存過程實現,例如金融行業等。

3、有些系統資料處理量巨大,效能要求極為苛刻,這往往意味著必須通過經過高度優化的sql語句(或儲存過程)才能達到系統效能設計指標。

在這些場景中,全自動化的hibernate已經不能滿足要求,而ibatis剛好可以解決這個問題。它定義pojo與sql之間的對映關係,但並不會為開發人員在執行期自動生成sql執行,具體的sql需要自行編寫,然後通過對映配置檔案將sql所需的引數以及返回的結果字段對映到指定的pojo。

面試題:與hibernate相比,ibatis有哪些優缺點?

答:hibernate和ibatis都是使用廣泛的orm框架,但前者提供的是「一站式」的解決方案,後者是「半自動」的實現方式。ibatis的優點如下:

1、ibatis適用於這些場合,例如系統無法給出比較完整的表結構的場合,以及對安全性比較高、只能提供sql或儲存過程的場合,例如金融行業的專案。另外在系統資料處理量巨大,對效能要求極為苛刻的情況下,使用ibatis會有更好的可控性。

2、ibatis入門簡單,即學即用,提供了資料庫查詢的自動物件繫結功能,而且延續了很好的sql使用經驗,對於沒有那麼高的物件模型要求的專案來說,相當理想。

3、hibernate學習門檻不低,要精通門檻更高,怎麼設計好o/r對映,對效能影響較大。

缺點如下:

1、ibatis需要手寫sql語句,也可以生成一部分,hibernate則基本上可以自動生成,偶爾會寫一些hql。同樣的需求,ibatis的工作量比hibernate要大很多。

2、以資料庫字段對映得到的po和hibernate物件化對映得到的po有著本質區別,前者的po是扁平化的,而hibernate的po是可以表達立體的物件繼承、聚合等關係的。

3、hibernate功能強大,資料庫無關性比較好,o/r對映能力強。

4、hibernate與ibatis相比,使用更加廣泛,它的文件、產品完整性,以及版本的開發速度都需要更加強大。

C 的ORM 開源框架

odb 是乙個開源的,支援多平台,支援多資料庫的 c 的 orm 框架,可將 c 物件資料庫表對映,進行輕鬆的資料庫查詢和操作。使用odb進行物件持久化具有以下優點 示例 view source print?01odb sqlite database db people.db 02 03person...

ORM框架試驗

public class orm 新增方法 public int add t obj columnnames columns 0 columnname 列名列表 值的列表 values common.getdbvalue columns 0 columntype,convert.tostring p...

開始學習IBatis 框架

ibatis 是乙個半自動化的持久層開層框架,相對於hibernate apache ojb 之類的全自動化的持久層框架,ibatis 有著自動的優勢之外,對於hibernate 之類的持久層框架完成pojo到資料庫表對映的全部封裝,這在一定程式上為程式提供了極大的便利,開發效率更不用說,但是這種全...