{eval=Array;=+count(Array);}

国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

問答專欄Q & A COLUMN

Java開發中,MyBatis、Hibernate、Spring Data JPA應該如何選擇?

hedzrhedzr 回答0 收藏1
收藏問題

6條回答

stormjun

stormjun

回答于2022-06-28 14:13

選擇哪一種框架,需要結合項目實際來,結合業務場景和團隊成員的能力,綜合考慮并選擇技術方案。

先和大家講講每一種框架是啥

  • Hibernate:POJO與數據庫表建立映射關系;Java程序員可以使用操作對象的思維操作數據庫。(POJO就是Java Bean,只有有屬性、set、get方法)

  • Mybatis:做的是POJO與SQL之間的映射關系;程序員需要編寫SQL;

  • Spring Data JPA:有人說它是對Hibernate更高級的封裝,這種說法是有一些問題的;第二部分詳細說明一下。

要解釋清楚Spring Data JPA是什么,需要一步步說起

  • 期初Java需要通過各個數據庫廠商提供的API進行數據庫的訪問,后來JAVA提出了JDBC,程序直接使用JDBC這套規范就可以跟各個數據庫進行對接;

  • 接著誕生了ORM技術,簡化了Java對象的持久化工作,出現了Hibernate、TopLink等ORM框架;

  • Sun公司在JDK1.5的時候,吸收了Hibernate、TopLink等ORM框架的優點,提出了Java持久化規范:JPA;

  • Hibernate在3.2的時候提供了JPA的實現,其余的JPA的供應商還有諸如OpenJPA、Toplink等;

  • Spring在做持久化這一塊的工作,開發了Spring-data-xxx這一系列包,如:Spring-data-jpa,Spring-data-redis,Spring-data-mongodb等等,這些都是Spring 提供的基于JPA和其他一些NOSQL的Repository。

  • Spring data JPA 是在JPA規范的基礎下提供了Repository層的實現,但是使用哪一款ORM需要你自己去決定;相比我們更為熟悉的Hibernate和MyBatis,Spring Data JPA可以看做更高層次的抽象。

  • 使用Spring data JPA,默認底層是Hibernate,但是可以修改成其他的ORM框架。

幾種框架的優劣

  • Hibernate開發難度較大,學習周期長;但是可以讓開發者無需關心SQL,更專注業務流程;HQL不關心數據庫的類型,所以遷移起來很方便;

  • Mybatis需要手動編寫SQL語句(更直觀),可更直接地對SQL進行優化,但是數據庫移植性差;

  • Spring Data JPA簡化了數據庫訪問,可以通過命名規范編寫SQL,如果SQL較為復雜,還是需要通過注解的方式編寫SQL;它更適用于現在微服務的架構(微服務的極致都是單表操作)。


從個人的角度:MyBatis>Spring Data JPA>Hibernate,或者MyBatis + Spring Data JPA。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。

評論0 贊同0
  •  加載中...
syoya

syoya

回答于2022-06-28 14:13

如果沒有更換不同數據庫可能,Mybatis 可能更好一些,現在的Mybatis不光只有原生,什么操作都得寫SQL了,自動增刪改查單表的插件也很多了,而且自動分頁插件也有,都挺優秀。關于Hibernate和Spring Data Jpa本質基本一樣,Hibernate是JPA標準的一種實現,同為JPA實現的還有Eclipselink 、OpenJPA。這樣Hibernate就是Spring Data Jpa的默認執行器,同時Spring Data Jpa也有Eclipselink的實現,在實際使用中JPQL(HQL)會出現方法不足的情況最后還是得用SQL,比如像xxx,xxx,xxx這樣的數據,JPA和HQL中沒有實現,但是在MySQL中有一個find in set方法。

評論0 贊同0
  •  加載中...
MasonEast

MasonEast

回答于2022-06-28 14:13

mybatis這就是趨勢。

評論0 贊同0
  •  加載中...
Charles

Charles

回答于2022-06-28 14:13

首選mybatis簡單 能出活 易調試 交了貨 剩下時間想看哪個看哪個

評論0 贊同0
  •  加載中...
Ethan815

Ethan815

回答于2022-06-28 14:13

JPA: J2EE數據持久化的規范

JPA規范實現:Hibernate

Spring Data JPA: 本質也是借助Hibernate實現JPA規范,并提供了很多數據庫交互的接口,容易快速上手

hibernate相比mybatis較重,如果只是簡單業務借助于HQL語言可以提高開發效率。mybatis相比hibernate比較靈活,近乎原生的sql操作,處理復雜邏輯或者sql調優優勢巨大,目前我接觸的IT公司基本清一色的mybatis

評論0 贊同0
  •  加載中...
seanlook

seanlook

回答于2022-06-28 14:13

個人覺得,…都行,

評論0 贊同0
  •  加載中...

相關問題

最新活動

您已邀請0人回答 查看邀請

我的邀請列表

  • 擅長該話題
  • 回答過該話題
  • 我關注的人
向幫助了您的網友說句感謝的話吧!
付費偷看金額在0.1-10元之間
<