更新時間:2022-04-13 10:04:16 來源:動力節點 瀏覽3239次
其實JPA和mybatis大體上沒什么區別,架構上很相似,動力節點小編來告訴大家他們有哪些不同的地方。
GPA是java persistence api的縮寫,它的中文翻譯就是指程序JAVA持久層API,Mybatis相對來說比較實用的持久層框架。首先,兩者最大的不同就在于內部的反應對象,JPA的操作是在對象與對象之間的反射,而mybatis的處理對象是在對象和結果集合之間的反射。雖然其最終的持久層框架結果是一樣的,但是卻在操作過程中有千差萬別。
從整體的移植性來看,GPA的一致性相對較好,他在數據庫的兼容性基本都是相同的,所以不用擔心其他問題。一般來說springdatajpa都知道當一個接口繼承了GPA,接口之后便會自動具備數據移植的良好性質。由于mybatis是使用SQL語句,所以在移植時必須將數據庫的類型改為sql了。從這一點上來看,GPA更具優勢,其次在操作層面修改字段的時候,mybatis也相對操作步驟比較多。
如果是學習操作持久層的話,用hibernate會比較麻煩,所以從具體學習操作來看,mybatis具有更強烈的優勢,同時也可以使用springdatajpa,但是這一種方式更適合于單表。但在這里可以發現這一篇a的妥協性,為了支持這一特性,但在實際操作起來,并不推薦薦使用,因為這種操作方式并不符合領域驅動設計的目標和理念。
mybatis就是mapper層,JPA就是repository層,其他都一樣的。
JPA就是把mapper層的接口換成repository的接口:
那么接口具體長什么樣呢?
mapper層
自己寫sql語句
JPA的repository:
沒有具體sql語句,看起來沒有實現一樣,但其實是遵循規則的實現,你只要寫 findByXxx(Xxx xx) 就能根據某個鍵自動實現數據庫查詢,當然其他的語句也是可以實現的。
如果你覺得不靈活,也可以自己寫,例如
最后的nativeQuery一定加上,不然會報錯。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習