最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis 簡介與原理

 更新時間:2017年05月04日 23:11:07   作者:于亮  
MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 代碼和手動設置參數以及獲取結果集

什么是Mybatis

MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,并且改名為MyBatis 。iBATIS一詞來源于“internet”和“abatis”的組合,是一個基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)。
MyBatis參考資料官網:https://mybatis.github.io/mybatis-3/zh/index.html

官網對Mybatis的介紹更加具有權威性:

MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的持久層框架。MyBatis 避免了幾乎所有的 JDBC 代碼和手工設置參數以及抽取結果集。MyBatis 使用簡單的 XML 或注解來配置和映射基本體,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄。

MyBatis是iBatis的升級版,用法有很多的相似之處,但是MyBatis進行了重要的改進。例如:

1、Mybatis實現了接口綁定,使用更加方便。

在ibatis2.x中我們需要在DAO的實現類中指定具體對應哪個xml映射文件, 而Mybatis實現了DAO接口與xml映射文件的綁定,自動為我們生成接口的具體實現,使用起來變得更加省事和方便。

2、對象關系映射的改進,效率更高

3、MyBatis采用功能強大的基于OGNL的表達式來消除其他元素。

對于IBatis與MyBatis的區(qū)別就不再多說了,感興趣的朋友可以研究一下。

MyBatis的框架架構

看到Mybatis的框架圖,可以清晰的看到Mybatis的整體核心對象,我更喜歡用自己的圖來表達Mybatis的整個的執(zhí)行流程。如下圖所示:

原理詳解:
        MyBatis應用程序根據XML配置文件創(chuàng)建SqlSessionFactory,SqlSessionFactory在根據配置,配置來源于兩個地方,一處是配置文件,一處是Java代碼的注解,獲取一個SqlSession。SqlSession包含了執(zhí)行sql所需要的所有方法,可以通過SqlSession實例直接運行映射的sql語句,完成對數據的增刪改查和事務提交等,用完之后關閉SqlSession。
 
MyBatis的優(yōu)缺點
 
優(yōu)點:
1、簡單易學
       mybatis本身就很小且簡單。沒有任何第三方依賴,最簡單安裝只要兩個jar文件+配置幾個sql映射文件易于學習,易于使用,通過文檔和源代碼,可以比較完全的掌握它的設計思路和實現。
 
2、靈活
       mybatis不會對應用程序或者數據庫的現有設計強加任何影響。 sql寫在xml里,便于統(tǒng)一管理和優(yōu)化。通過sql基本上可以實現我們不使用數據訪問框架可以實現的所有功能,或許更多。
 
3、解除sql與程序代碼的耦合
       通過提供DAL層,將業(yè)務邏輯和數據訪問邏輯分離,使系統(tǒng)的設計更清晰,更易維護,更易單元測試。sql和代碼的分離,提高了可維護性。
 
4、提供映射標簽,支持對象與數據庫的orm字段關系映射
 
5、提供對象關系映射標簽,支持對象關系組建維護
 
6、提供xml標簽,支持編寫動態(tài)sql。
 
缺點:
 
1、編寫SQL語句時工作量很大,尤其是字段多、關聯表多時,更是如此。
 
2、SQL語句依賴于數據庫,導致數據庫移植性差,不能更換數據庫。
 
3、框架還是比較簡陋,功能尚有缺失,雖然簡化了數據綁定代碼,但是整個底層數據庫查詢實際還是要自己寫的,工作量也比較大,而且不太容易適應快速數據庫修改。
 
4、二級緩存機制不佳
 
總結
 
       mybatis的優(yōu)點同樣是mybatis的缺點,正因為mybatis使用簡單,數據的可靠性、完整性的瓶頸便更多依賴于程序員對sql的使用水平上了。sql寫在xml里,雖然方便了修改、優(yōu)化和統(tǒng)一瀏覽,但可讀性很低,調試也非常困難,也非常受限。
      mybatis沒有hibernate那么強大,但是mybatis最大的優(yōu)點就是簡單小巧易于上手,方便瀏覽修改sql語句。

相關文章

  • 如何優(yōu)雅的實現將Collection轉為Map

    如何優(yōu)雅的實現將Collection轉為Map

    這篇文章主要介紹了如何優(yōu)雅的實現將Collection轉為Map,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • Java中字符串的一些常見方法分享

    Java中字符串的一些常見方法分享

    這篇文章主要介紹了Java中字符串的一些常見方法,需要的朋友可以參考下
    2014-02-02
  • SpringBoot整合RabbitMQ實現消息確認機制

    SpringBoot整合RabbitMQ實現消息確認機制

    這篇文章主要介紹了SpringBoot整合RabbitMQ實現消息確認機制,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • java中的反射及其優(yōu)點說明

    java中的反射及其優(yōu)點說明

    這篇文章主要介紹了java中的反射及其優(yōu)點說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Java快速實現圖書管理基本功能

    Java快速實現圖書管理基本功能

    隨著網絡技術的高速發(fā)展,計算機應用的普及,利用計算機對圖書館的日常工作進行管理勢在必行,本篇文章涵蓋一個圖書管理系統(tǒng)的基本功能實現代碼,大家可以查缺補漏,提升水平
    2022-05-05
  • ElasticSearch6.2.3+head插件安裝的方法步驟

    ElasticSearch6.2.3+head插件安裝的方法步驟

    這篇文章主要介紹了ElasticSearch6.2.3+head插件安裝的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • SpringBoot快速構建應用程序方法介紹

    SpringBoot快速構建應用程序方法介紹

    這篇文章主要介紹了SpringBoot快速構建應用程序方法介紹,涉及SpringBoot默認的錯誤頁面,嵌入式Web容器層面的約定和定制等相關內容,具有一定借鑒價值,需要的朋友可以參考下。
    2017-11-11
  • 解決Springboot不能自動提交數據庫連接問題

    解決Springboot不能自動提交數據庫連接問題

    在使用SSM框架開發(fā)時,若在同一Service內部方法間互相調用,直接使用this關鍵字會導致事務管理失效,從而引發(fā)如數據庫連接不足等問題,原因是通過this調用不會經過Spring的代理,因此不會自動進行事務處理
    2024-09-09
  • Spring boot實現應用打包部署的示例

    Spring boot實現應用打包部署的示例

    本篇文章主要介紹了Spring boot實現應用打包部署的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Hibernate中Session增刪改查操作代碼詳解

    Hibernate中Session增刪改查操作代碼詳解

    這篇文章主要介紹了Hibernate中Session增刪改查操作代碼詳解,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12

最新評論

甘南县| 大余县| 修武县| 双江| 利川市| 龙胜| 都昌县| 襄汾县| 安多县| 孝义市| 诏安县| 炎陵县| 获嘉县| 株洲市| 沅陵县| 秭归县| 竹山县| 乐山市| 丰城市| 响水县| 衡水市| 阿图什市| 抚宁县| 轮台县| 翁牛特旗| 南涧| 类乌齐县| 沙坪坝区| 秭归县| 芜湖市| 博湖县| 蒲江县| 青浦区| 青海省| 垦利县| 灵石县| 广州市| 临汾市| 晴隆县| 上思县| 永年县|