基礎概念
jdbc(Java DataBase Connectivity)是java連接數據庫操作的原生接口。JDBC對Java程序員而言是API,對實現與數據庫連接的服務提供商而言是接口模型。作為API,JDBC為程序開發提供標准的接口,並為各個數據庫廠商及第三方中間件廠商實現與數據庫的連接提供了標准方法。一句話概括:jdbc是所有框架操作數據庫的必須要用的,由數據庫廠商提供,但是為了方便java程序員調用各個數據庫,各個數據庫廠商都要實現jdbc接口。
jpa(Java Persistence API)是java持久化規范,是orm框架的標准,主流orm框架都實現了這個標准。Sun引入新的JPA ORM規范出於兩個原因:其一,簡化現有Java EE和Java SE應用開發工作;其二,Sun希望整合ORM技術,實現天下歸一。ORM是一種思想,是插入在應用程序與JDBC API之間的一個中間層,JDBC並不能很好地支持面向對象的程序設計,ORM解決了這個問題,通過JDBC將字段高效的與對象進行映射。具體實現有hibernate、spring data jpa、open jpa。
spring data jpa是對jpa規范的再次抽象,底層還是用的實現jpa的hibernate技術。
hibernate是一個標准的orm框架,實現jpa接口。
mybatis也是一個持久化框架,但不完全是一個orm框架,不是依照的jpa規范。
jdbc和jpa的區別
本質上,這兩個東西不是一個層次的,jdbc是數據庫的統一接口標准,jpa是orm框架的統一接口標准。用法有區別,jdbc更注重數據庫,orm則更注重於java代碼,但是實際上jpa實現的框架底層還是用jdbc去和數據庫打交道。