MyBatis入門

  1. 概要java

    MyBatis。是一個基於SQL映射支持Java和·NET的持久層框架。ORM映射框 Hibernate(一站式),Apache OJB(一站式)Mybatis(半自動)。MyBatis使用簡單的XML或註解用於配置和原始映射,將接口和Java的POJOs(Plan Old Java Objects,普通的Java對象)映射成數據庫中的記錄.程序員

           相對 Hibernate 和 Apache OJB 等「一站式」ORM 解決方案而言,ibatis 是一種「半自動化」的 ORM 實現。所謂「半自動」 ,可能理解上有點生澀。縱觀目前主流的 ORM,不管 Hibernate 仍是Apache OJB,都對數據庫結構提供了較爲完整的封裝,提供了從 POJO 到數         據庫表的全套映射機制。 程序員每每只需定義好了 POJO 到數據庫表的映射關係, 便可經過 Hibernate或者 OJB 提供的方法完成持久層操做。程序員甚至不須要對 SQL 的熟練掌握,Hibernate/OJB 會根據制定的存儲邏輯,自動生成對應的 SQL 並調用 JDBC 接口加以執行。數據庫

             大多數狀況下(特別是對新項目,新系統的開發而言) ,這樣的機制無往不利,大有一統天下的勢頭。可是,在一些特定的環境下,這種一站式的解決方案卻未必靈光。數組

        在筆者的系統諮詢工做過程當中,經常遇到如下狀況:安全

            1.  系統的部分或所有數據來自現有數據庫,處於安全考慮,只對開發團隊提供幾條 Select SQL(或存儲過程)以獲取所需數據,具體的表結構不予公開。session

            2.  開發規範中要求,全部牽涉到業務邏輯部分的數據庫操做,必須在數據庫層由存儲過程實現(就筆者工做所面向的金融行業而言,工商銀行、中國銀行、交通銀行,都在開發規範中嚴格指定)mybatis

            3.  系統數據處理量巨大,性能要求極爲苛刻,這每每意味着咱們必須經過通過高度優化的 SQL 語句(或存儲過程)才能達到系統性能設計指標。 直接使用 JDBC進行數據庫操做實際上也是不錯的選擇, 只是拖沓的數據庫訪問代碼, 乏味的字段讀取操做使人厭煩。app

       全自動化POJO和數據之間的映射以及SQL語句的自動生成和執行,ibatis在於 POJO 與 SQL 之間的映射關係。 也就是說, ibatis並不會爲程序員在運行期自動生成 SQL 執行框架

 ORM(Object Relational Mapping)工具
工具

    不管是用過的hibernate,mybatis,你均可以法相他們有一個共同點:
    1. 從配置文件(一般是XML配置文件中)獲得 sessionfactory.
    2. 由sessionfactory  產生 session
    3. 在session 中完成對數據的增刪改查和事務提交等.
    4. 在用完以後關閉session 。

       5. 在java 對象和 數據庫之間有作mapping 的配置文件,也一般是xml 文件。

           

凡是使用ORM框架效率性能都會比JDBC差些。

二、與JDBC的區別

    一、JDBC釋放資源的寫法很容易出錯,使用框架後這個問題就基本不存在了。即便用JDBC,通常也要封裝一個Util類來處理,如Srping的JDBC Template,不然每一個SQL語句外面包一大坨try/catch語句太麻煩了。
    二、對於常見的多個選擇參數的查詢頁面,使用mybatis的標籤很容易處理多個參數組合使用的狀況,相比較寫JDBC的拼接字符串要容易。
    三、若是項目中使用的是java的實體類,使用Mybatis能夠方便的實現數據庫行和對象的映射,手工寫JDBC的話這部分的代碼量會比較大,並且重複性很高。

相關文章
相關標籤/搜索