目錄

Day 24 - Spring JDBC 簡介

古古

2024/07/24


哈囉大家好,我是古古。

在前面的文章中,我們介紹了 Spring MVC 中的許多特性,因此大家現在就可以在 Spring Boot 中,透過 Spring MVC 和前端進行溝通了。

而在了解了如何和前端溝通之後,在接下來的文章中,我們就會來介紹另一個也很重要的部分,即是如何透過 Spring JDBC,去和「資料庫」進行溝通,所以我們就開始吧!

回顧:前端和後端的差別、Spring MVC 負責的部分 #

在前面的文章中我們曾經提到,在現今的網站架構中,前端是負責進行排版設計,後端則是負責數據處理。而前端除了設計網頁的排版之外,同時也需要去問後端:「這裡應該要呈現哪些商品?」,這樣前端才能夠將數據和排版結合再一起,最後再將結果呈現給使用者看。

也因為如此,所以在上一個 Spring MVC 的部分中,我們就都是在介紹:要如何透過 Spring MVC 去和「前端」溝通。

但是這些商品的數據,我們總是得在後端程式中找個地方來儲存,因此後端通常就會將這些商品數據,存放在「資料庫」裡面。 所以後續當前端來詢問:「這裡要呈現哪些商品?」時,後端就可以從資料庫中查詢商品數據,接著再將這些商品的數據返回給前端。

所以在接下來的 Spring JDBC 的部分中,我們就是要來介紹,要如何透過 Spring JDBC,去和「資料庫」溝通,進而存取資料庫中的數據。

什麼是 Spring JDBC? #

大概了解了 Spring JDBC 的用途之後,接著我們可以回頭來看一下 Spring JDBC 的定義。

Spring JDBC 的用途,就是「讓我們能夠在 Spring Boot 中執行 SQL 語法,進而去存取資料庫中的數據」,因此我們之後就可以透過 Spring JDBC 的功能,在 Spring Boot 中執行資料庫的 SQL 語法,所以就可以透過這些 SQL,在資料庫中執行查詢數據、新增數據…等等的操作了!

補充:因此在閱讀後續的文章時,建議大家一定要預先了解資料庫的 SQL 語法,這樣子才會比較好上手。

補充一:Spring JDBC 和 Spring Data JPA 的差別在哪裡? #

在上面的那張圖中,大家可能有發現在上方的紅字中,不僅出現了「Spring JDBC」的文字,也出現了「Spring Data JPA」的文字(如下圖黃底處所示)。

其實「在 Spring Boot 中操作資料庫數據」這件事,是有許多工具可以選擇的!

像是在 Spring Boot 中,常見的操作資料庫的工具有:

  • Spring JDBC
  • MyBatis
  • Spring Data JPA
  • Hibernate
  • …等等

而在這些操作資料庫的工具中,又可以將他們分成兩類:

  1. 在 Spring Boot 中執行 SQL 語法,使用 SQL 語法操作資料庫

    這一類的工具,就是直接在 Spring Boot 中執行原始的 SQL 語法,然後透過這些 SQL 語法去新增或是修改資料庫中的數據。Spring JDBC 和 MyBatis 都屬於這一類。

  2. 使用 ORM 的概念操作資料庫

    這一類的工具,則是會透過 ORM(Object Relational Mapping)的概念,在 Spring Boot 操作資料庫。因此在使用這類的工具時,基本上就很少寫 SQL 語法了,反而是會使用 ORM 的概念,去存取資料庫的數據。Spring Data JPA 和 Hibernate 都屬於這一類。

所以回到最一開始的問題:「Spring JDBC 和 Spring Data JPA 的差別在哪裡?」的話,簡單來說,Spring JDBC 是透過執行 SQL 語法去操作資料庫,而 Spring Data JPA 則是透過 ORM 的概念去操作資料庫。

也因為這兩種概念差異比較大,因此在此系列文中只會介紹 Spring JDBC 的部分,而不會介紹 Spring Data JPA 的用法。如果大家後續對 Spring Data JPA 有興趣,也可以再上網查詢相關的資料。

補充二:什麼是 CRUD? #

其實在前面的 Day 22 - RESTful API 實作 - @GetMapping、@PostMapping… 文章中,我們曾經短暫的提到過 CRUD 這個關鍵字,不過當時我們沒有針對 CRUD 進行太多的介紹,因此這裡我們可以正式的來介紹一下,CRUD 所代表的含義是什麼。

CRUD 所代表的,是資料庫中的「Create(新增)、Read(查詢)、Update(修改)、Delete(刪除)」這四個操作的統稱,用來表示資料庫中最基礎的行為。

而這四個操作之所以會簡稱為 CRUD,是因為如果我們把這四個操作擺成直排來看的話,就會發現 CRUD 這個單字,只是各取他們的第一個英文字母來簡稱而已。

  • Create(新增)
  • Read(查詢)
  • Update(修改)
  • Delete(刪除)

之所以說 CRUD 是資料庫中最基礎的實作,是因為不管我們想要實作什麼功能(ex: 商品功能),我們通常都得去實作數據的「新增、查詢、修改、刪除」這四個操作,因此實作 CRUD 可以說是後端工程師必備的基礎能力!建議大家一定要好好掌握才行。

總結 #

這篇文章我們先回顧了前端和後端之間的區別,接著也介紹了 Spring JDBC 的用途是什麼,以及補充 Spring JDBC 和 Spring Data JPA 的差異在哪裡,讓大家先對 Spring JDBC 有一個簡單的認識。

那麼下一篇文章,我們就會接著來介紹,要如何透過 Spring JDBC 的功能,在 Spring Boot 中設定資料庫的連線資訊,那我們就下一篇文章見啦!

補充:本文是擷取自我開設的線上課程 Java 工程師必備!Spring Boot 零基礎入門 的內容,如果你想了解更多的 Spring Boot 的用法,歡迎參考課程簡介 (輸入折扣碼「HH202504KU」即可享 85 折優惠)。