iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Software Development

Spring Boot 零基礎入門系列 第 24

Spring Boot 零基礎入門 (24) - Spring JDBC 簡介

  • 分享至 

  • xImage
  •  

賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架

哈囉大家好,我是古古

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

那麼了解了和前端溝通之後,從這篇文章開始,我們就會進到下一個章節:Spring JDBC,來了解要如何透過 Spring JDBC,去和「資料庫」進行溝通,所以我們就開始吧!

回顧:前端和後端的差別、Spring MVC 的範圍


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

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

https://ithelp.ithome.com.tw/upload/images/20231008/201510363vsVy5mluu.png

但這些商品的數據,我們總是得找個地方來儲存嘛,所以我們就會將這些商品數據,去存放在資料庫裡面

因此當前端來詢問「這裡要呈現的是哪些商品」時,後端就可以去資料庫中查詢商品列表,然後再將資料庫中所存放的商品列表資訊,去返回給前端

所以在這個 Spring JDBC 章節中,我們就會來介紹,要如何 透過 Spring JDBC 去和「資料庫」溝通

https://ithelp.ithome.com.tw/upload/images/20231008/20151036tHSWI8KNBn.png

什麼是 Spring JDBC?


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

Spring JDBC 的用途,就是讓我們 「能夠在 Spring Boot 中執行 sql 語法,進而去操作資料庫」,因此我們之後就可以透過 Spring JDBC 的功能,在 Spring Boot 中執行資料庫的 sql 語法,進而就可以存取到資料庫中的數據了!

https://ithelp.ithome.com.tw/upload/images/20231008/2015103678CQtSQVHM.png

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


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

https://ithelp.ithome.com.tw/upload/images/20231008/20151036frAUXhMB7q.png

實際上 「在 Spring Boot 中操作資料庫」 這件事,是有許多工具可以選擇的,常見的操作資料庫的工具有:

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

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

  1. 在 Spring Boot 中執行 sql 語法,去操作資料庫
    • 這一類的工具,就是直接在 Spring Boot 中去執行原始的 sql 語法,然後透過這些 sql 語法去存取資料庫的數據這樣
    • Spring JDBC 和 MyBatis 都屬於這一類
  2. 使用 ORM 的概念,去操作資料庫
    • 這一類的工具,則是會透過 ORM (Object Relational Mapping) 的概念,去操作資料庫
    • 所以只要使用這類的工具,基本上就很少寫 sql 語法了,而是會套用另一種新的概念(即是 ORM),去存取資料庫的數據
    • Spring Data JPA 和 Hibernate 都屬於這一類

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

也因為這兩種概念差比較多,因此此系列文只會介紹 Spring JDBC 的部分,也就是介紹要如何在 Spring Boot 中去執行 sql 語法,進而去操作資料庫

補充:新手入門的話,會建議先從 Spring JDBC 上手,因為只需要學會怎麼 call 方法就好,具體操作資料庫的邏輯,還是根據你所寫的 sql 語法而定

而 Spring Data JPA 這類的 ORM 技術,因為概念上就和 sql 不太一樣,所以等於是整個設計 table 的思維要一起轉變,上手難度會稍微高一點點這樣

補充 2:什麼是 CRUD?


CRUD 所代表的,是「資料庫」中的「Create (新增)、Read (查詢)、Update (修改)、Delete (刪除) 操作」的統稱,用以表示資料庫中最基礎的那些操作

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

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

而我們之所以說 CRUD 代表的是資料庫中最基礎的操作,是因為不管我們想要實作什麼功能(ex: 商品功能),我們通常都得去實作數據的「新增、查詢、修改、刪除」這四個操作,所以實作 CRUD 可以說是後端工程師必備的能力

另外我們在之前的 Day 21 - RESTful API 介紹 的文章中也有提到過,我們在設計 RESTful API 時,所套用的 REST風格,其實就是將 POST、GET、PUT、DELETE 這四種 http method,分別去對應到資料庫的 CRUD 操作上

所以總結來說的話,資料庫的 CRUD 操作,是可以去對應到下列的這些 sql 語法,並且也是可以去對應到不同的 Http method 的

https://ithelp.ithome.com.tw/upload/images/20231008/20151036It0tuGMO9K.png

總結


這篇文章先回顧了前端和後端之間的區別,接著介紹了 Spring JDBC 這個功能的用途是什麼,以及介紹了 Spring JDBC 和 Spring Data JPA 的差別,最後也補充了資料庫中的 CRUD 是什麼意思

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

相關連結



上一篇
Spring Boot 零基礎入門 (23) - Http status code(Http 狀態碼)介紹
下一篇
Spring Boot 零基礎入門 (25) - 資料庫連線設定、IntelliJ 資料庫管理工具介紹
系列文
Spring Boot 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言