JPA、Hibernate和Mybatis區別和總結
一、應用場合:
傳統公司、部分個人開發者喜歡用jpa;而網際網路公司更青睞於mybatis
原因:
1、mybatis更加靈活,開發迭代模式決定了他是網際網路公司的首先;每一次的修改不會帶來效能上的下降。
2、傳統公司需求迭代速度慢、專案改動小,hibernate可以做到一勞永逸;hibernate容易因為新增關聯關係或者開發者不瞭解優化導致專案,造成越改越糟糕。
二、各自特點:
1、mybatis官方文件就說了他是一個半自動化的持久層框架,相對於按自動的hibernate更加靈活可控;
2、mybatis的學習成本低於hibernate。
3、使用hibernate需要對他有深入的瞭解,尤其是快取方面,作為一個持久層框架,效能還是第一位的。
hibernate具有三級快取,一級快取預設是開啟的,二級快取需要手動開始並配置優化,三級快取可以整合業界流行的快取技術:redis,ecache等等。
4、hibernate在關聯查詢中的懶載入。(在開發中,還是不建議去過多使用外來鍵去關聯操作)
5、jpa是一種規範,hibernate也是遵從這種規範;
6、springDataJpa是對repository的封裝,簡化了repository的操作。
相關推薦
JPA、Hibernate和Mybatis區別和總結
一、應用場合: 傳統公司、部分個人開發者喜歡用jpa;而網際網路公司更青睞於mybatis 原因: 1、mybatis更加靈活,開發迭代模式決定了他是網際網路公司的首先;每一次的修改不會帶來效能上的下降。 2、傳統公司需求迭代速度慢、專案改動小,hibernate可以
自己總結 :併發佇列ConcurrentLinkedQueue、阻塞佇列AraayBlockingQueue、阻塞佇列LinkedBlockingQueue 區別 和 使用場景總結
三者區別與聯絡: 聯絡,三者 都是執行緒安全的。區別,就是 併發 和 阻塞,前者為併發佇列,因為採用cas演算法,所以能夠高併發的處理;後2者採用鎖機制,所以是阻塞的。注意點就是前者由於採用cas演算法,雖然能高併發,但cas的特點造成操作的危險性,怎麼危險性可以去查一下
JPA、Hibernate、Mybatis的區別
4.查詢區別: 簡單查詢:Hibernate 提供了基礎的查詢方法,也可以根據具體的業務編寫相應的SQL; Mybatis需要手動編寫SQL語句,Spring Data 繼承基礎介面,可使用內建的增刪改查方法。 高階查詢:Hibernate通過物件對映機制,開發者無需關心SQL的生成與結果對映
Linux中profile、bashrc、bash_profile之間的區別和聯系(轉)
用戶登錄 upd rtu 文件輸入 當前 設定 log set less /etc/profile:此文件為系統的每個用戶設置環境信息,當用戶第一次登錄時,該文件被執行.並從/etc/profile.d目錄的配置文件中搜集shell的設置. 英文描述為: # /etc/pr
cookie、 sessionStorage 、localStorage之間的區別和使用
有效期 blog 請求 ora coo 頁面 作用域 .cn 有效 http://www.cnblogs.com/caiyezi/p/5619506.html 1.cookie:存儲在用戶本地終端上的數據2.localStorage - 沒有時間限制的數據存儲3.sessi
PHP的抽象類、接口的區別和選擇
fin 行為 其中 沒有 protected 模型 共享 nts stat 1、對接口的使用是通過關鍵字implements。對抽象類的使用是通過關鍵字extends。當然接口也可以通過關鍵字extends繼承。 2、接口中不可以聲明成員變量(包括類靜態變量),但是可以聲明
24. Java SE 、 Java EE 、JavaME 、 JavaWeb 直接的區別和聯系
擴展 edi 而且 java ee soa 用戶 mic 利用 桌面應用 這個是在別人博客抄的,並不是本人撰寫 Java是一門編程語言。Java分為三大版本,SE即標準版,包含了Java核心類庫,主要用來開發桌面應用;EE即企業版,包含SE,又有擴展部分(Ser
select count(*)、count(1)、count(0)的區別和執行效率比較
rst 區別 如果 定性 count(0 決定性 計算 fir 執行 區別 執行效率比較 執行效率從高到低 count(*)=count(1)=count(0)>count(colFirst)>count(colLast) 1.由於count(*)的算法
SpringBoot數據庫訪問工具(JdbcTemplate、MyBatis、JPA、Hibernate)
etl find tiger con repo 定義 pid auto 關系型數據庫 SpringBoot數據庫訪問 關系型數據庫訪問(RDBMS) 采用JdbcTemplate、MyBatis、JPA、Hibernate等技術。 一、JdbcTemplate工具 1.在p
MySQL count(*)、count(1)、count(column)的區別和執行效率比較
count(*)、count(1)、count(column)區別 count(column) 會忽略為 null 的列,其他兩個不會。 執行效率 它們三個的效率如何呢?網上說的各
SQL中INNER、LEFT、RIGHT JOIN的區別和用法詳解
相信很多人在剛開始使用資料庫的INNER JOIN、LEFT JOIN和RIGHT JOIN時,都不太能明確區分和正確使用這三種JOIN操作,本文通過一個簡單的例子通俗易懂的講解這三者的區別,希望對大家能帶來幫助。 首先,我們建立示例資料庫和表。同時也要明確一個概念:A INN
WCF、WebAPI之間的區別和選擇
WCF 1、基於SOAP,資料格式是XML 2、是Web Service(ASMX)的進化版,可以支援各種各樣的協議,像TCP,HTTP,HTTPS,Named Pipes, MSMQ. 3、配置起來特別的繁瑣 4、不開源,但可以被任意一個瞭解XML的人使用 5、可以部署應用程式
echo語句、print語句、print_r有啥區別和聯絡?
echo語句、print語句、print_r有啥區別和聯絡? **echo是PHP語句, print和print_r是函式,語句沒有返回值,函式可以有返回值(即便沒有用) print() 只能打印出簡單型別變數的值(如int,string)** 例子 <?php $a=
C89和C99區別--簡單總結
(1)對陣列的增強 可變長陣列 C99中,程式設計師宣告陣列時,陣列的維數可以由任一有效的整型表示式確定,包括只在執行時才能確定其值的表示式,這類陣列就叫做可變長陣列,但是隻有區域性陣列才可以是變長的.可變長陣列的維數在陣列生存期內是不變的,也就是說,可變長陣列不
人工智慧和機器學習、深度學習的區別和聯絡
機器學習是一種實現人工智慧的方法,深度學習是一種實現機器學習的技術。 人工智慧 在1956年被提出,2012年之前一直飽受爭議,直到機器學習新演算法(深度學習)的出現,人工智慧迎來了大爆發。 人工智慧研究的分支有很多,包含:專家系統、機器學習、進化計算、模糊邏輯、計算機視覺、自然語言處理
KEIL、uVision和MDK區別和聯絡
--------------------------------------------- -- 時間:2018-11-26 -- 建立人:Ruo_Xiao -- 郵箱:[email protected] ----------------------------------------
塊儲存、物件儲存、檔案儲存的區別和聯絡
塊儲存、物件儲存、檔案儲存的區別和聯絡 塊儲存、物件儲存、檔案儲存的區別和聯絡 通常來講,磁碟陣列都是基於Block塊的儲存,而所有的NAS產品都是檔案級儲存。 1. 塊儲存:DAS SAN a) DAS(Direct Attach Storage): 是直接
關於“.bash_profile”和“.bashrc”區別的總結
版權宣告:本文為博主原創文章,轉載請註明出處,謝謝合作! https://blog.csdn.net/sch0120/article/details/70256318 bash的startup檔案 Linux shell是使用者與Linux系統進行互動的媒介,而bas
類方法、靜態方法、例項方法的區別和聯絡
Python中至少有三種比較常見的方法型別,即例項方法,類方法、靜態方法。它們是如何定義的呢?如何呼叫的呢?它們又有何區別和作用呢?且看下文。 首先,這三種方法都定義在類中。下面我先簡單說一下怎麼定義和呼叫的。(PS:例項物件的許可權最大。) 例項方法 定義
帶你用例項學習代理模式:靜態代理、動態代理(JDK、CGlib)以及區別和優缺點
Spring AOP的核心技術就是動態代理,所以小編學習並整理了代理模式的材料,供大家一起學習。 1、代理模式滿足的三個必要條件: 兩個角色:執行者、被代理物件 這個過程必須要做,但是自己不能做或者不想做,交給專業的人(媒婆) 執行者必須拿到被代理物件的引用(需要知道你要什