您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(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è)資訊頻道,感謝大家的支持。
免責(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)容。