哈喽各位同學們大家好呀,今天小編為大家分享開發者學院中課程“Spring Boot2.5使用Spring Data連結MySQL資料庫”幹貨總結哦~Spring Boot 2.5.x開發實戰可是Java中級工程師必備課程;
課程連結以及圖譜位址小編已經為大家指路了,搭配學習效果更佳👇
課程名稱:Spring Boot 2.5.x開發實戰
課程位址:
https://developer.aliyun.com/learning/course/71?spm=a2c6h.21254954.0.0.4e905907uoWZzr圖譜名稱:Alibaba Java 技術圖譜
圖譜位址:
https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJSpring Boot2.5使用Spring Data連結MySQL資料
一、Spring Data簡化MySQL資料通路
(一)Spring Data新特性
Spring在Spring boot之後再應用開發、微服務架構以及資料連結上都提供了專門的架構,大大簡化開發工作,提升開發的效率。
Spring Data for MySQL有很多技術可以用,比如JDBC、JDBC Template、RM架構或者Hibernate My Business。
Spring Data會整合架構,簡化整個架構的配置。這裡面有個非常重要的Spring Data的子集叫JPA,實際就是加上了一個持久化的API,它其中有一塊針對MySQL封裝底層的Hibernate,也可以切換成My Business。
- Spring Data新特性
1. 快速資料通路架構,提供統一的程式設計模型
2. 強大的repository倉儲和自定義對象映射ORM抽象
3. 從repository方法名稱派生動态查詢接口
4. 實作Domain域基類提供基本屬性
5. 支援透明審計日志(建立,最後更改)
6. 可以自定義repository代碼
7. 通過JavaConfig和自定義XML命名空間輕松實作 Spring內建
8. 與Spring MVC控制器的進階內建
9. 跨庫持久性的實驗支援
Spring Data針對各個資料源提供了統一的程式設計模型,其中有一個設計模式叫倉儲模式,倉儲模式在資料通路層又做了一層封裝,主要針對各種不同的資料庫提供統一的操作,有些預設接口直接生成不用再進行配置了。這個操作也可以結合其他的分層模型來進行整合。
(二)Spring Data架構
Spring Data主要是做各種不同的資料源的對接工作。有傳統的關系型資料庫也有非關系型資料庫等等都可以和它進行內建。

Spring Data架構主要分成了關系型資料庫和關系型資料庫。JPA底層使用JDBC。
本次主要對關系型據庫的一系列操作,後面對于通路Redis以及MongoDB後續課程也有對應的實戰案例。
(三)Spring Data核心子產品
1. Spring Data Commons - 支援每個Spring Data子產品的Core Spring概念。2. Spring Data JDBC - 對JDBC的Spring Data存儲庫支援。3. Spring Data JDBC Ext - 支援标準JDBC的資料庫特定擴充,包括對Oracle RAC快速連接配接故障轉移的支援,AQ JMS支援以及對使用進階資料類型的支援。4. Spring Data JPA - JPA的Spring Data存儲庫支援。5. Spring Data KeyValue - 基于映射的存儲庫和SPI,可輕松建構用于鍵值存儲的Spring Data子產品。6. Spring Data LDAP - 對Spring LDAP的Spring Data存儲庫支援。7. Spring Data MongoDB - 基于Spring的對象文檔支援和MongoDB的存儲庫。8. Spring Data Redis - 從Spring應用程式輕松配置和通路Redis。9. Spring Data REST - 将Spring Data存儲庫導出為超媒體驅動的RESTful資源。10. Spring Data Apache Cassandra - 輕松配置和通路Apache Cassandra或大規模,高可用性。
11. Spring Data Apache Geode - 輕松配置和通路Apache Geode。
12. Spring Data Apache Solr - 為面向搜尋的Spring應用程式輕松配置和通路Apache Solr。13. Spring Data Pivotal GemFire - 輕松配置和通路Pivotal GemFire。
(四)Spring Boot2.5實戰MySQL
1. Spring JDBC and JdbcTemplate
2. Spring Data JPA and Hibernate framework
3. Spring Data簡化連接配接不同的資料庫
4. 使用Spring Data JPA架構連接配接MySQL
5. 當然也可以使用原始的JDBC
6. 預設底層使用Hibernate架構
7. 支援Repository倉儲模式
8. 引入最重要的2個包
9. spring-boot-starter-data-jpa
10. mysql-connector-java
JPA預設一個RM架構叫Hibernate架構。我們在對接的時候,需要大家去引幾個包。作為Spring boot嚴格來說是有個傻瓜式程式設計,要簡化配置。但是我們手動引入一個叫JDBC的包,然後再去配置資料庫連結參數,資料庫位址以及使用者密碼這些參數還是要自己設定。
對于初始化依賴,可以使用starter-data-jpa這樣的一個依賴包。這裡面還涉及到JdbcTemplate,這是Spring提供了一個非常重要的資料庫操作的接口。
(五)Spring Data JPA架構
•Spring Data JPA簡化資料通路層的開發工作•基于Spring和JPA建構存儲庫的完美支援•支援Querydsl謂詞,進而支援類型安全的JPA查詢•Domain類的透明稽核•分頁支援,動态查詢執行,內建自定義資料通路代碼的能力•在引導時驗證@Query帶注釋的查詢•支援基于XML的實體映射•引入@EnableJpaRepositories,基于JavaConfig的存儲庫配置。
在定義接口的時候,特殊的查詢可能需要編寫一些特殊的語句,下面來看一下具體的一個實作。
加入資料庫通路連結,這裡面有個spring data starter的JPA。加進來以後我們從資料庫底層手動引一下MySQL-connector,裡面devtools主要做自動化調試,友善進行程式的開發配置。改完代碼以後不用重新開機,就會自動重新加載變化的資料配置檔案。
Database platform在這裡面指的是hibernate。Model在這裡面指的是實體,和資料庫直接對應。相比之前Spring data對應的資料源要配置一下。代碼中有幾個重要的參數分别是url、username以及password。
Spring Data Jpa是連結MySQL資料庫重要的元件,在配置的時候要注意底層的MySQL connection。
配置MySQL參數
POM配置
倉儲Repository泛型接口
第4課:
Java進階面試題
1. Spring Data JPA CRUD增刪改查 REST API
2. 如何基于Spring Boot+Spring Data實作登入注冊?
3. Spring Data為什麼隻使用接口聲明就可以通路資料庫?
4. 預設Spring Data JPA 使用Hibernate,如何配置連接配接池?