一、應用場合:
傳統(tǒng)公司、部分個人開發(fā)者喜歡用jpa(Hibernate);而互聯(lián)網(wǎng)公司更青睞于mybatis
原因:
1、mybatis更加靈活,開發(fā)迭代模式?jīng)Q定了他是互聯(lián)網(wǎng)公司的首先;每一次的修改不會帶來性能上的下降。
2、傳統(tǒng)公司需求迭代速度慢、項目改動小,hibernate可以做到一勞永逸;hibernate容易因為添加關聯(lián)關系或者開發(fā)者不了解優(yōu)化導致項目,造成越改越糟糕。
二、各自特點:
1、mybatis官方文檔就說了他是一個半自動化的持久層框架,相對于按自動的hibernate更加靈活可控;
2、mybatis的學習成本低于hibernate。
3、使用hibernate需要對他有深入的了解,尤其是緩存方面,作為一個持久層框架,性能還是第一位的。
hibernate具有三級緩存,一級緩存默認是開啟的,二級緩存需要手動開始并配置優(yōu)化,三級緩存可以整合業(yè)界流行的緩存技術:redis,ecache等等。
4、hibernate在關聯(lián)查詢中的懶加載。(在開發(fā)中,還是不建議去過多使用外鍵去關聯(lián)操作)
5、jpa是一種規(guī)范,hibernate也是遵從這種規(guī)范;
6、springDataJpa是對repository的封裝,簡化了repository的操作。
- Mybatis優(yōu)勢
Mybatis優(yōu)勢
8.JPA優(yōu)勢
JPA優(yōu)勢
9.Mybatis劣勢
Mybatis劣勢
需要Mybatis-Plus 登場
三丶個人感覺
總結
1、JPA、Hibernate、Mybatis簡單了解
1.JPA:本身是一種ORM規(guī)范,不是ORM框架.由各大ORM框架提供實現(xiàn).
2.Hibernate:目前最流行的ORM框架,設計靈巧,文檔豐富(完全自動操作),只是性能不好控制(自己去控制性能,不是很好控制)。
Hibernate是一個完整的ORM框架,常規(guī)CRUD我們不需要寫一句SQL;
3.MyBatis:本是apache的一個開源項目iBatis,提供的持久層框架包括SQL Maps和Dao,允許開發(fā)人員直接編寫SQL(更好靈活).(Sql操作方式)
MyBatis 并不是一個完整的ORM框架,因為我們還需要自己去寫全部SQL
2、JPA 和Hibernate 和 Mybatis的區(qū)別
JPA:規(guī)范,各大ORM框架實現(xiàn)這個規(guī)范??梢宰詣咏ū怼?/p>
Hibernate:是完整的ORM,不需要我們寫sql,框架比較重,學習成本比較高,性能不好控制,功能強大且文檔豐富。
Mybatis:不是完整的ORM,程序員需要自己去寫全部的SQL,輕量級框架,學習成本低,性能好控制。不能自動建表。
ORM操作數(shù)據(jù)庫關系映射的方式:
1、通過配置文件,將domain和數(shù)據(jù)庫中的表映射,將domain成員成員變量和表中的列映射。


