1. 程式人生 > 資料庫 >02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

點選上方“java進階架構師”,置頂公眾號。
用最少的時間,走最正確的架構師之路!
02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)
springboot專題預計60講左右,本篇作為第二篇帶你5分鐘快速完成增刪改查操作。

一、SpringDataJPA和Hibernate

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

Spring Data JPA等於在ORM之上又進行了一次封裝,但具體的對資料庫的訪問依然要依賴於底層的ORM框架,Spring Data JPA預設是通過Hibernate實現的

二、SpringDataJPA體系

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

三、解析與理解

最高層的Repository<T,ID>是一個空介面,我們定義的資料訪問類只要實現或者繼承這個介面,這個資料訪問類就可以被spring data所管理,就此可以使用spring為我們提供操作方法(在原來的spring data中我們需要配置很多和Spring Data Repository相關的設定,但是現在有了spring boot,全部都已經自動配置好了)。

這個介面要實現有兩個泛型引數:

  • 第一個T表示實體(entry)類
  • 第二個表示主鍵的型別

四、簡單實現:那麼我們開始寫一個數據庫訪問介面

1、拷貝依賴
02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)
2、建表,我這裡建一張student表,這個略
3、建立實體類,student類,這個略。如果這兩部都要圖文教學建議不學。
4、首先回憶一下,我們用mybatis的時候是怎麼樣的?是不是要建立對應的student的xml檔案,,xml檔案裡面寫對應的sql語句,然後寫對應的mapper介面,然後service呼叫對應mapper介面的方法?(hibernate我就不說了,我早就忘了怎麼用了)
5、回憶完畢,到了SpringDataJPA這裡,我們只需要建立studentRepo類繼承JpaRepository<T,ID>或他下面的介面即可!如下:02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)

6、裡面不需要再寫什麼方法或者sql語句了,Repository介面已經封裝好最基本的crud和分頁查詢等常規操作!
7、那麼我們來看下我們的測試類如下,繼承了JpaRepository,不需要重寫,直接呼叫,基本的增刪改查都有了。當然按照實際做法應該是要寫個service層,然後再呼叫service層方法,我這裡就簡化了直接呼叫repo類。
02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)
8、可能細心的同學發現了,新增和修改都是save方法,沒錯,jpa會根據是否有id來進行新增或者修改操作。那麼究竟有哪些可以直接用的方法呢?看下面即可。

五、JPA常用方法一覽表

將不建議使用的方法置灰,此類方法多為CrudRepository介面、PagingAndSortingRepository介面中定義,後來JpaRepository介面中又定義了替代方法,更方便使用。如查詢全部findall

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)
當然實際開發中肯定不止是crud這麼點東西,敬請期待下篇。

本公眾號已開設如下專題,歡迎長按以下二維碼,檢視相關專題!

  • 【mysql優化專題】【HTTP協議】
  • 【架構技術專題】【多執行緒/池專題】
  • 【dubbo專題】【dubbo原始碼專題】
  • 【JVM調優專題】【HTTP協議專題】
  • 【設計模式專題】【高併發專題】
  • 【架構技術專題】【netty專題】
  • 【資料結構專題】【redis專題】

02:SpringBoot整合SpringDataJPA實現資料庫的訪問(一)