溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

hibernate和mybatis有什么區(qū)別

發(fā)布時間:2021-06-18 16:59:22 來源:億速云 閱讀:151 作者:Leah 欄目:大數(shù)據(jù)

今天就跟大家聊聊有關(guān)hibernate和mybatis有什么區(qū)別,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

hibernate和mybatis的區(qū)別

1 簡單簡介 Hibernate 框架

    Hibernate是一個開放源代碼的對象關(guān)系映射框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,建立對象與數(shù)據(jù)庫表的映射。是一個全自動的、完全面向?qū)ο蟮某志脤涌蚣堋?/pre>

Mybatis框架

    Mybatis是一個開源對象關(guān)系映射框架,原名:ibatis,2010年由谷歌接管以后更名。是一個半自動化的持久層框架。

2 兩者區(qū)別 2.1 開發(fā)方面

    在項目開發(fā)過程當(dāng)中,就速度而言:

        hibernate開發(fā)中,sql語句已經(jīng)被封裝,直接可以使用,加快系統(tǒng)開發(fā);

        Mybatis 屬于半自動化,sql需要手工完成,稍微繁瑣;

    但是,凡事都不是絕對的,如果對于龐大復(fù)雜的系統(tǒng)項目來說,復(fù)雜語句較多,選擇hibernate 就不是一個好方案。

2.2 sql優(yōu)化方面

    Hibernate 自動生成sql,有些語句較為繁瑣,會多消耗一些性能;

    Mybatis 手動編寫sql,可以避免不需要的查詢,提高系統(tǒng)性能;

2.3 對象管理比對

    Hibernate 是完整的對象-關(guān)系映射的框架,開發(fā)工程中,無需過多關(guān)注底層實現(xiàn),只要去管理對象即可;

    Mybatis 需要自行管理 映射關(guān)系;

2.4 緩存方面

相同點:

Hibernate和Mybatis的二級緩存除了采用系統(tǒng)默認(rèn)的緩存機(jī)制外,都可以通過實現(xiàn)你自己的緩存或為其他第三方緩 存方案,創(chuàng)建適配器來完全覆蓋緩存行為。

不同點:

Hibernate的二級緩存配置在SessionFactory生成的配置文件中進(jìn)行詳細(xì)配置,然后再在具體的表-對象映射中配置是那種緩存。

MyBatis的二級緩存配置都是在每個具體的表-對象映射中進(jìn)行詳細(xì)配置,這樣針對不同的表可以自定義不同的緩存機(jī)制。并且Mybatis可以在命名空間中共享相同的緩存配置和實例,通過Cache-ref來實現(xiàn)。

比較:

      Hibernate 具有良好的管理機(jī)制,用戶不需要關(guān)注SQL,如果二級緩存出現(xiàn)臟數(shù)據(jù),系統(tǒng)會保存,;

       Mybatis 在使用的時候要謹(jǐn)慎,避免緩存CAche 的使用。

Hibernate優(yōu)勢

Hibernate的DAO層開發(fā)比MyBatis簡單,Mybatis需要維護(hù)SQL和結(jié)果映射。

Hibernate對對象的維護(hù)和緩存要比MyBatis好,對增刪改查的對象的維護(hù)要方便。

Hibernate數(shù)據(jù)庫移植性很好,MyBatis的數(shù)據(jù)庫移植性不好,不同的數(shù)據(jù)庫需要寫不同SQL。

Hibernate有更好的二級緩存機(jī)制,可以使用第三方緩存。MyBatis本身提供的緩存機(jī)制不佳。

Mybatis優(yōu)勢

MyBatis可以進(jìn)行更為細(xì)致的SQL優(yōu)化,可以減少查詢字段。

MyBatis容易掌握,而Hibernate門檻較高。

一句話總結(jié) Mybatis:小巧、方便、高效、簡單、直接、半自動化

Hibernate:強(qiáng)大、方便、高效、復(fù)雜、間接、全自動化

看完上述內(nèi)容,你們對hibernate和mybatis有什么區(qū)別有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI