哈囉大家好,我是古古。
在上一篇文章中,我們先介紹了 Spring JDBC 的用途是什麼,先讓大家對 Spring JDBC 有一個簡單的認識。
那麼接著這篇文章,我們就會實際的去創建一個資料庫,並且將 Spring Boot 程式連線到此資料庫上,同時也會補充要如何運用 IntelliJ 中的好用工具,去管理資料庫中的數據(僅限 IntelliJ 付費版才有此功能),所以我們就開始吧!
Spring JDBC 的用途,就是「讓我們能夠在 Spring Boot 中執行 SQL 語法,進而去存取資料庫中的數據」,因此我們之後就可以透過 Spring JDBC 的功能,在 Spring Boot 中執行資料庫的 SQL 語法,因此就可以在資料庫中執行查詢數據、新增數據…等等的操作了!
如果想要在 Spring Boot 中使用 Spring JDBC 的功能的話,首先會需要在 pom.xml 檔案中新增下方的程式,這樣才能夠將 Spring JDBC 的功能、以及 MySQL 資料庫的 driver 給載入進來。
因此大家可以先打開左邊側邊欄中的 pom.xml 檔案,然後在第 29 行~第 37 行的地方,添加下面的程式:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.0.33</version>
</dependency>
添加好上述的程式之後,此時在 pom.xml 的右上角會出現一個 M 符號,這時記得要點擊一下這個 M 符號,這樣才能夠更新 Spring Boot 程式,把 Spring JDBC 的功能、以及 MySQL 資料庫的 driver,一起給載入進來。
補充:如果大家在其他的 Spring Boot 專案中使用的是其他的資料庫(ex: PostgreSQL、SQL Server),則上圖中的第 33 行~第 37 行需要改成該資料庫的 driver。
載入好 Spring JDBC 和 MySQL 的 driver 之後,接著我們就可以在 Spring Boot 中設定 MySQL 資料庫的連線,這樣我們後續就能夠在 Spring Boot 程式裡面,去操作 MySQL 資料庫中的數據了。
而要在 Spring Boot 中設定資料庫的連線資訊的話,就只要先打開 application.properties 檔案,並且在裡面添加下列的程式,這樣就能完成 MySQL 資料庫的連線設定了!
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/myjdbc?serverTimezone=Asia/Taipei&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=springboot
補充:application.properties 檔案是 Spring Boot 的設定檔,用來存放 Spring Boot 中的設定值。如果有點忘記 application.properties 的用法的話,也可以回頭參考 Day 10 - 讀取 Spring Boot 設定檔 - @Value、application.properties 的介紹。
在 application.properties 檔案中添加好上述的程式之後,我們也可以分別來介紹一下,這四行程式的用途是什麼:
spring.datasource.driver-class-name
spring.datasource.driver-class-name 是表示「要使用的是哪種資料庫的 driver」,此處我們填寫的即是 MySQL 的 driver。
spring.datasource.url
spring.datasource.url 是表示「要連接到哪台資料庫上」。像是前面的 jdbc:mysql://localhost:3306
是表示要連接到我們自己電腦上的 MySQL 資料庫,而後面跟著的 /myjdbc
,則是指定要連線到 MySQL 資料庫中的 myjdbc
database。
並且在 myjdbc 後面的 ?
中,我們也有加上兩個參數:
serverTimezone=Asia/Taipei
是表示我們指定時區為台北時區characterEncoding=utf-8
則表示我們所使用的編碼是 utf-8,這樣後續在處理中文時,才不會出現亂碼spring.datasource.username
spring.datasource.username 是要我們填入 MySQL 資料庫中的帳號,此處就填上預設的帳號 root
。
spring.datasource.password
spring.datasource.password 則是要我們填入上面那個帳號的密碼,因此此處就填上 springboot
(這裡所填上的密碼 springboot
,其實就是我們一開始在安裝 MySQL 時,所設定的那組密碼。當時有建議大家可以和此系列文一樣設定為 springboot
,不過如果你所當初不是使用 springboot
當作密碼,那麼這裡即是填入你當時所設定的密碼)。
在了解了這四行程式所代表的意義、並且也有在 application.properties 檔案中設定好這四行程式之後,這樣 Spring Boot 到時候就會去根據這四行程式,去連線到我們所指定的資料庫了!
所以到目前為止,大家只要先完成 application.properties 的設定即可,有關 Spring JDBC 的用法,我們在下一篇文章會繼續介紹。
在設定好 application.properties 中的資料庫連線之後,其實我們就可以使用 Spring JDBC 的功能,在 Spring Boot 中操作 MySQL 資料庫中的數據了。
不過,在我們正式進入到 Spring JDBC 的用法介紹之前,這裡先和大家補充一個 IntelliJ 中的好用工具,這個工具可以讓我們直接透過 IntelliJ 中的介面,去管理資料庫中的數據,可以為將來我們的 Spring JDBC 開發,提供非常大的幫助!
補充:不過此工具僅限 IntelliJ Ultimate(付費版)可以使用,因此大家如果是使用 IntelliJ Community(社群版)的話,就無法啟用此功能,只能使用其他的資料庫管理工具(ex: MySQL Workbench),實時的去查看資料庫中的數據。
如果要直接透過 IntelliJ 去管理 MySQL 資料庫中的數據的話,就只要點擊 IntelliJ 右側的資料庫圖示,就可以開啟 IntelliJ 中的資料庫管理工具。
接著可以點擊上方的 + 號,去新增一個 MySQL 資料庫的連線,連線到安裝在我們電腦中的 MySQL 資料庫。
開啟設定的視窗之後,就先在 User 處填上 root
,並且在 Password 處填上 springboot
(此密碼即是當初安裝 MySQL 時設定的密碼)。
填寫完成之後,可以先試著點擊左下角的「Test Connection」按鈕,先測試一下 MySQL 資料庫的連線,這裡只要出現 Succeeded 就表示連線成功!
測試成功之後,記得要再重新輸入一次 Password 的值 springboot
(因為會被 IntelliJ 清掉),然後再按下右下角的 OK 保存即可。
按下 OK 之後,這時候 IntelliJ 就成功的連線到 MySQL 資料庫了,而此時 IntelliJ 就會跳出一個 console 的視窗,讓我們在裡面撰寫 SQL 語法。
所以後續我們就可以在這個 console 中撰寫 SQL 語法,就可以直接在 IntelliJ 中存取資料庫中的數據了。
將 IntelliJ 連線好 MySQL 資料庫之後,接著我們可以試著在資料庫中創建一個新的 database 出來。
因此我們可以在 console 中添加下方的 SQL 語法,嘗試在 MySQL 資料庫中創建 myjdbc
database。
CREATE DATABASE myjdbc
寫好之後,只要按下左上方的「播放鍵」,就可以去執行這條 SQL 語法。
當這條 SQL 語法執行成功之後,在右側的視窗就會出現 myjdbc
的 database 資訊了!因此這就表示我們成功的在 MySQL 裡面,創建了一個 myjdbc
database 出來了。
補充:如果在右邊的 Database 側邊欄中沒有看到
myjdbc
database 的話也不用緊張,這時只要點擊右上角的「0 of 5」,然後勾選myjdbc
,這樣子myjdbc
這個 database 就會出現在右邊的側邊欄了。
我們除了能夠在 console 中創建 myjdbc database 之外,我們也是可以在這個 console 中執行「創建 table」的 SQL 語法,在 myjdbc database 中創建一個新的 table 出來的。
要在 myjdbc database 中創建一個新的 table 的話,首先要先點擊右上方的 <schema>
按鈕,且選擇 myjdbc
,這樣子才能夠切換到 myjdbc database,確保我們後續所執行的 SQL 語法,真的是在 myjdbc database 中執行。
切換好之後,接著我們可以在 console 中添加以下的 SQL 語法,去創建一個 student table 出來。
CREATE TABLE student (
id INT PRIMARY KEY ,
name VARCHAR(30)
)
添加好這段 SQL 之後,只要反白這段 SQL 語法,接著再按下播放鍵,這樣蓻就可以去執行這一段 SQL 語法,在 myjdbc database 中去創建一個 student table 出來了!
因此在執行完成之後,在右邊的側邊欄中,就會出現 student table 的資訊了。
創建好 student table 之後,這時只要使用滑鼠左鍵,對著右邊側邊欄中的 student table 點擊兩下,就可以開啟這個 student table,去查看該 table 中的數據。
所以像是目前在 student table 中,就沒有任何一筆數據存在,是一張空的 table。
但是如果我們回到 console 上,然後添加下面這行 INSERT SQL,並且去執行這一條 SQL 語法,在 student table 中插入一筆 Judy 的數據的話:
INSERT INTO student(id, name) VALUES (1, 'Judy')
那麼這時候再回到 student table 中,並且點擊「重新整理」的按鈕之後,就可以看到 student table 中多出一筆 Judy 的數據出來了!
因此透過 IntelliJ 所提供的資料庫工具,我們後續就可以直接在 IntelliJ 中查看和修改資料庫中的數據了!所以我們之後就只需要使用 IntelliJ 這套軟體,就可以完成大部分的後端開發了,讚!
補充:IntelliJ 真的是很強大的軟體,大家有興趣的話,也可以玩玩 IntelliJ 的用法,摸熟之後就可以提升開發的效率了!
這篇文章我們先介紹了如何在 Spring Boot 中載入 Spring JDBC 的功能,並且也介紹了 application.properties 中的程式設定的含義,最後也補充了 IntelliJ 所提供的好用的資料庫管理工具,因此後續我們就可以透過這個工具,去管理資料庫中的數據了。
那麼下一篇文章,我們就會正式來介紹 Spring JDBC 的用法,也就是會來介紹要如何在 Spring Boot 程式中執行 SQL 語法,進而去操作資料庫中的數據,那我們就下一篇文章見啦!
補充:本文是擷取自我開設的線上課程 Java 工程師必備!Spring Boot 零基礎入門 的內容,如果你想了解更多的 Spring Boot 的用法,歡迎參考課程簡介 (輸入折扣碼「HH202504KU」即可享 85 折優惠)。