日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jpa findone怎么用_Jpa VS MyBatis,你用哪个?

發布時間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jpa findone怎么用_Jpa VS MyBatis,你用哪个? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

經常看到有小伙伴在討論 JPA 和 MyBatis 這兩個孰優孰劣的問題,其實松哥覺得這是一個偽命題,沒必要為這種問題爭個面紅耳赤,每種框架有它存在的道理,也有各自擅長的事情,今天松哥就和大家來聊聊這兩個框架,順便來了解一下大家在開發中都用的是哪一個數據庫框架?

以下內容,松哥盡量保持一個客觀中立立場,大家不要噴我,說的不完善的地方大家可以留言補充。

JPA

JPA是什么

  • Java Persistence API:用于對象持久化的 API

  • Java EE 5.0 平臺標準的 ORM 規范,使得應用程序以統一的方式訪問持久層?

  • JPA和Hibernate的關系

  • JPA 是 Hibernate 的一個抽象(就像JDBC和JDBC驅動的關系);

  • JPA 是規范:JPA 本質上就是一種 ORM 規范,不是ORM 框架,這是因為 JPA 并未提供 ORM 實現,它只是制訂了一些規范,提供了一些編程的 API 接口,但具體實現則由 ORM 廠商提供實現;

  • Hibernate 是實現:Hibernate 除了作為 ORM 框架之外,它也是一種 JPA 實現

  • 從功能上來說, JPA 是 Hibernate 功能的一個子集

  • JPA的供應商

    JPA 的目標之一是制定一個可以由很多供應商實現的 API,Hibernate 3.2+、TopLink 10.1+ 以及 OpenJPA 都提供了 JPA 的實現,JPA 供應商有很多,常見的有如下四種:
    1.Hibernate
    JPA 的始作俑者就是 Hibernate 的作者,Hibernate 從 3.2 開始兼容 JPA。
    2.OpenJPA
    OpenJPA 是 Apache 組織提供的開源項目。
    3.TopLink
    TopLink 以前需要收費,如今開源了。
    4.EclipseLink

    JPA的優勢

  • 標準化: 提供相同的 API,這保證了基于JPA 開發的企業應用能夠經過少量的修改就能夠在不同的 JPA 框架下運行。

  • 簡單易用,集成方便: JPA 的主要目標之一就是提供更加簡單的編程模型,在 JPA 框架下創建實體和創建 Java 類一樣簡單,只需要使用 javax.persistence.Entity 進行注解;JPA 的框架和接口也都非常簡單。

  • 可媲美JDBC的查詢能力: JPA的查詢語言是面向對象的,JPA定義了獨特的JPQL,而且能夠支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能夠提供的高級查詢特性,甚至還能夠支持子查詢。

  • 支持面向對象的高級特性: JPA 中能夠支持面向對象的高級特性,如類之間的繼承、多態和類之間的復雜關系,最大限度的使用面向對象的模型

  • ....

  • JPA包含的技術

  • ORM 映射元數據:JPA 支持 XML 和 JDK 5.0 注解兩種元數據的形式,元數據描述對象和表之間的映射關系,框架據此將實體對象持久化到數據庫表中。

  • JPA 的 API:用來操作實體對象,執行CRUD操作,框架在后臺完成所有的事情,開發者從繁瑣的 JDBC 和 SQL 代碼中解脫出來。

  • 查詢語言(JPQL):這是持久化操作中很重要的一個方面,通過面向對象而非面向數據庫的查詢語言查詢數據,避免程序和具體的 SQL 緊密耦合。

  • MyBatis

    什么是 MyBatis

    MyBatis 也是一個 Java 持久化框架,它通過 XML 描述符或 Annotation 把對象與存儲過程或SQL語句關聯起來。與 JPA 這種對象關系映射(ORM)框架不同,MyBatis 并沒有將 Java 對象與數據庫表關聯起來,而是將 Java 方法與 SQL 語句關聯。MyBatis 允許用戶充分利用數據庫的各種功能,例如存儲過程、視圖、各種復雜的查詢以及某數據庫的專有特性,其實 MyBatis 最吸引松哥的地方就是完全控制 SQL 的執行。

    與 JDBC 相比,MyBatis 簡化了查詢結果映射:SQL 語句在一行代碼中就能執行。MyBatis 提供了一個映射引擎,聲明式的把 SQL 語句執行結果與對象樹映射起來。通過使用一種內建的類 XML 表達式語言,或者使用 Apache Velocity 集成的插件,SQL 語句可以被動態的生成,這些特性都可以使開發者更方便的使用 MyBatis。MyBatis 也支持聲明式數據緩存,當一條SQL語句被標記為“可緩存”后,首次執行它時從數據庫取得的所有數據會被存儲在一段高速緩存中,今后執行這條語句時就會從高速緩存中讀取結果,而不是再次命中數據庫。

    MyBatis 優勢

  • 上手容易,也更加容易掌握。

  • 由于自己掌握 SQL ,因此可以寫出更加優質的 SQL ,提高 SQL 的執行效率。

  • 多表關聯查詢時,MyBatis 要靈活一些,也更具備優勢。

  • .....

  • 怎么用

    關于這兩個框架的用法,松哥在公眾號都寫過專門的文章介紹,讀者可以翻一下歷史記錄,三年前還在 CSDN 寫過一個 MyBatis 專欄,有興趣的小伙伴可以去松哥專欄看看。

    你用哪個

    最后松哥來做一個小小的調查,看看大家在開發中用的哪個?

    大家也可以留言說說自己項目中用了哪一個數據持久化框架,出于什么樣的考慮用了該框架?

    關注牧碼小子,后臺回復 Java ,領取松哥為你精心準備的Java干貨!

    往期文章一覽

    1、工作之余,你是怎么提高技術的?

    2、兩年了,我寫了這些干貨!

    3、想和大家談一點合作

    4、一個Java程序猿眼中的前后端分離以及Vue.js入門

    5、跟著平臺混了四年,現在要單飛了!

    你點的每個在看,我都認真當成了喜歡

    總結

    以上是生活随笔為你收集整理的jpa findone怎么用_Jpa VS MyBatis,你用哪个?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。