賀!此系列文榮獲 2023 iThome 鐵人賽《優選》獎項,正在規劃出書中,感謝大家的支持🙏,同名課程「Java 工程師必備!Spring Boot 零基礎入門」也已在 Hahow 平台上架
哈囉大家好,我是古古
在前面的文章中,我們介紹了許多 Spring MVC 中的特性,因此大家就可以透過 Spring MVC 中的好用工具,去和前端進行溝通了
那麼了解了和前端溝通之後,從這篇文章開始,我們就會進到下一個章節:Spring JDBC,來了解要如何透過 Spring JDBC,去和「資料庫」進行溝通,所以我們就開始吧!
我們在前面的文章中有提到,在現今的網站架構中,前端是負責進行排版設計,而後端則負責數據處理,而前端除了設計網頁的排版之外,同時也需要去問後端說「這裡應該要顯示哪些商品?」,這樣才能夠將數據和排版結合再一起,最後再將結果呈現給使用者看
也因為如此,所以在上一個 Spring MVC 的章節中,我們就都是在介紹,要如何透過 Spring MVC 去和「前端」溝通
但這些商品的數據,我們總是得找個地方來儲存嘛,所以我們就會將這些商品數據,去存放在資料庫裡面
因此當前端來詢問「這裡要呈現的是哪些商品」時,後端就可以去資料庫中查詢商品列表,然後再將資料庫中所存放的商品列表資訊,去返回給前端
所以在這個 Spring JDBC 章節中,我們就會來介紹,要如何 透過 Spring JDBC 去和「資料庫」溝通
大概了解了 Spring JDBC 功能的用途之後,接著我們可以回頭來看一下 Spring JDBC 的定義
Spring JDBC 的用途,就是讓我們 「能夠在 Spring Boot 中執行 sql 語法,進而去操作資料庫」,因此我們之後就可以透過 Spring JDBC 的功能,在 Spring Boot 中執行資料庫的 sql 語法,進而就可以存取到資料庫中的數據了!
在上面的那張圖中,大家可能有發現在右邊的紅字中,不僅出現了「Spring JDBC」的文字,也出現了「Spring Data JPA」的字樣(如下圖黃底處所示)
實際上 「在 Spring Boot 中操作資料庫」 這件事,是有許多工具可以選擇的,常見的操作資料庫的工具有:
而在這些操作資料庫的工具中,又可以將他們分成兩類:
所以回到最一開始的問題「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 的思維要一起轉變,上手難度會稍微高一點點這樣
CRUD 所代表的,是「資料庫」中的「Create (新增)、Read (查詢)、Update (修改)、Delete (刪除) 操作」的統稱,用以表示資料庫中最基礎的那些操作
而這 4 個操作之所以會簡稱為 CRUD,是因為如果我們把這四個操作擺成直排來看的話,就會發現 CRUD 這個單字,只是各取他們的第一個英文字母來簡稱而已
而我們之所以說 CRUD 代表的是資料庫中最基礎的操作,是因為不管我們想要實作什麼功能(ex: 商品功能),我們通常都得去實作數據的「新增、查詢、修改、刪除」這四個操作,所以實作 CRUD 可以說是後端工程師必備的能力
另外我們在之前的 Day 21 - RESTful API 介紹 的文章中也有提到過,我們在設計 RESTful API 時,所套用的 REST風格,其實就是將 POST、GET、PUT、DELETE 這四種 http method,分別去對應到資料庫的 CRUD 操作上
所以總結來說的話,資料庫的 CRUD 操作,是可以去對應到下列的這些 sql 語法,並且也是可以去對應到不同的 Http method 的
這篇文章先回顧了前端和後端之間的區別,接著介紹了 Spring JDBC 這個功能的用途是什麼,以及介紹了 Spring JDBC 和 Spring Data JPA 的差別,最後也補充了資料庫中的 CRUD 是什麼意思
那麼下一篇文章,我們就會來介紹,要如何透過 Spring JDBC 的功能,在 Spring Boot 中設定資料庫的連線資訊,那我們就下一篇文章見啦!