springboot專題預計60講左右,本篇作為第二篇帶你5分鐘快速完成增刪改查操作。
一、SpringDataJPA和Hibernate的關係
Spring Data JPA等於在ORM之上又進行了一次封裝,但具體的對數據庫的訪問依然要依賴於底層的ORM框架,Spring Data JPA默認是通過Hibernate實現的
二、SpringDataJPA體系
三、解析與理解
最高層的Repository
這個接口要實現有兩個泛型參數:
- 第一個T表示實體(entry)類
- 第二個表示主鍵的類型
-
四、快速實現crud
0、打開你基於maven的springboot項目(如何搭建?前面第一章有)
1、拷貝依賴
2、建表,我這裡建一張student表,字段無非就死id,name,age等,這個略
3、建立實體類,student類,這個略。如果這兩部都要圖文教學,建議不學。
4、首先回憶一下,我們用mybatis的時候是怎麼樣的?是不是要建立對應的student的xml文件,,xml文件裡面寫對應的sql語句,然後寫對應的mapper接口,然後service調用對應mapper接口的方法?(hibernate我就不說了,我早就忘了怎麼用了)
5、回憶完畢,到了SpringDataJPA這裡,我們只需要創建studentRepo類繼承JpaRepository
6、裡面不需要再寫什麼方法或者sql語句了,Repository接口已經封裝好最基本的crud和分頁查詢等常規操作!
7、那麼我們來看下我們的測試類如下,繼承了JpaRepository,不需要重寫,直接調用,基本的增刪改查都有了。當然按照實際做法應該是要寫個service層,然後再調用service層方法,我這裡就簡化了直接調用repo類。
8、可能細心的同學發現了,添加和修改都是save方法,沒錯,jpa會根據是否有id來進行新增或者修改操作。那麼究竟有哪些可以直接用的方法呢?看下面即可。
五、JPA常用方法一覽表
將不建議使用的方法置灰,此類方法多為CrudRepository接口、PagingAndSortingRepository接口中定義,後來JpaRepository接口中又定義了替代方法,更方便使用。如查詢全部findall
當然實際開發中肯定不止是crud這麼點東西,敬請期待下篇。
已完結專題(關注後查看):
- 【mysql優化專題】【HTTP協議】
- 【架構技術專題】【多線程/池專題】
更新中專題(關注後查看):
- 【dubbo專題】【dubbo源碼專題】
- 【JVM專題】【HTTP協議專題】
- 【設計模式專題】【高併發專題】
- 【架構技術專題】【netty專題】
- 【數據結構專題】【redis專題】
閱讀更多 java進階架構師 的文章