圖解Java JDBC和JPA的區別


1. JDBC和JPA的區別

  • 不同標准:jdbc是數據庫的統一接口標准;jpa是orm框架的統一接口標准。
  • 用法區別:jdbc更注重數據庫,orm則更注重於java代碼,但是實際上jpa實現的框架底層還是用jdbc去和數據庫打交道。

2. JDBC(Java DataBase Connectivity)

是java連接數據庫操作的原生接口。JDBC對Java程序員而言是API,為數據庫訪問提供標准的接口。由各個數據庫廠商及第三方中間件廠商依照JDBC規范為數據庫的連接提供的標准方法。

  • 優點:運行速度最快,所有操作數據庫的技術底層都是jdbc寫的
  • 缺點:重復代碼多,耦合性高,開發效率低,更換數據庫比較繁瑣

3. ORM(Object-Relational Mapping)

對象關系映射。簡單的說:ORM就是建立實體類和數據庫表之間的關系,從而達到操作實體類就相當於操作數據庫表的目的。
優點:減少重復性代碼。

常見的orm框架有:
Hibernate、spring data jpa、open jpa

Hibernate
Hibernate是一個開源的對象關系映射框架,它對JDBC進行了非常輕量級的對象封裝,它將POJO與數據庫表建立映射關系,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程序員可以使用面向對象的思維來操縱數據庫。是一種JPA實現。

4. JPA(Java Persistence API)

Java對象持久化的 API。是SUN公司推出的一套基於ORM的規范,通過注解或者XML描述【對象-關系表】之間的映射關系,並將實體對象持久化到數據庫中。JPA規范本質上就是一種ORM規范,注意不是ORM框架——因為JPA並未提供ORM實現,它只是制訂了一些規范,提供了一些編程的API接口,但具體實現則由服務廠商來提供實現。JPA是為了讓面向對象設置的,為了不寫sql語句而設置的。
優點:數據庫移植快,一級二級緩存,查詢,提高性能(ehcache框架實現緩存)
缺點:查詢所有的時候,find性能無法控制,無法干預sql語句的生成,對sql語句要求高的話

5. 多個數據訪問框架區別

Hibernate:是JPA的一種實現,是一個框架
Spring Data JPA:對JPA規范的再次抽象,底層使用Hibernate實現
Spring Data JDBC: jdbcTemplate模板數據庫簡化對數據庫的操作,相比傳統JDBC而言省去了,數據庫驅動,連接等無關配置,只需要寫sql,設置參數
Mybatis:是一個持久化框架,但不完全是一個orm框架,不是依照的jpa規范,她需要些sql語句,半ORM。

下圖說明上面介紹的名詞之間相互關系


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM