iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Software Development

Spring Boot 零基礎入門系列 第 25

Spring Boot 零基礎入門 (25) - 資料庫連線設定、IntelliJ 資料庫管理工具介紹

  • 分享至 

  • xImage
  •  

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

哈囉大家好,我是古古

在上一篇文章中,我們有先簡單介紹了 Spring JDBC 的用途是什麼,以及他和 Spring Data JPA 之間的差別

那麼接著這篇文章,我們就實際來創建一個資料庫,並且將 Spring Boot 程式連線到此資料庫上,最後也會來介紹一下要如何使用 IntelliJ 中的工具,去管理資料庫中的數據(僅限 IntelliJ 付費版才有此功能),所以我們就開始吧!

回顧:什麼是 Spring JDBC?


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

https://ithelp.ithome.com.tw/upload/images/20231009/20151036kWB915yXft.png

在 pom.xml 載入 Spring JDBC、資料庫 Driver


如果想要在 Spring Boot 中使用 Spring JDBC 的功能的話,首先會需要在 pom.xml 這個檔案裡面新增以下的程式,將 Spring JDBC 的功能給載入進來

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

除了加入 Spring JDBC 的功能之外,同時也得加入對應的資料庫 driver (驅動程式),這樣 Spring Boot 後續才能去操作該資料庫

由于此系列文使用的是 MySQL 資料庫,因此大家可以在 pom.xml 檔案裡面,再新增以下的程式,將 MySQL 的 driver 給載入進來

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.33</version>
</dependency>

補充:此處是以 MySQL 為例,如果大家之後使用的資料庫是 PostgreSQL 或是 SQL Server,則需要加入不同的 driver

加完上述的兩段程式之後,在 pom.xml 的右上角會出現一個 M 符號,點擊這個 M 符號,就可以更新這個 Spring Boot 程式,把 Spring JDBC 和 MySQL driver 一起給載入進來

https://ithelp.ithome.com.tw/upload/images/20231009/20151036ohWLMGzu1A.png

在 Spring Boot 中設定資料庫連線資訊


載入好 Spring JDBC 和 MySQL driver 之後,接著我們可以在 Spring Boot 中,去設定 MySQL 資料庫的連線,這樣後續就能夠在 Spring Boot 程式裡面,去操作這個 MySQL 資料庫裡面的數據了

要在 Spring Boot 中設定資料庫的連線資訊的話,需要打開 resources 資料夾底下的 application.properties 檔案

https://ithelp.ithome.com.tw/upload/images/20231009/20151036ijDFkTBm6d.png

回顧:application.properties 檔案是幹嘛的?

在之前的 Day 10 - 讀取 Spring Boot 設定檔 - @Value 有介紹到,application.properties 檔案是 Spring Boot 的設定檔,而這個設定檔的用途,就是用來存放 Spring Boot 中的設定值

所以我們就可以將 MySQL 資料庫的連線資訊,去寫在這個 application.properties 檔案裡面,交由他統一管理,這樣 Spring Boot 就可以透過這些設定,去連線到我們所指定的資料庫了

在 application.properties 中添加資料庫連線設定

了解了 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

https://ithelp.ithome.com.tw/upload/images/20231009/20151036XRV5KnVTNy.png

而我們也可以來分別介紹一下,這四行程式的用途分別是什麼

1. spring.datasource.driver-class-name

spring.datasource.driver-class-name 是表示要使用的是哪種資料庫的 driver,此處我們填寫的是 MySQL 的 driver

2. spring.datasource.url

spring.datasource.url 表示要連接到哪台資料庫上

此處的 jdbc:mysql://localhost:3306 是表示要連接到我們自己電腦上的 MySQL 資料庫裡面

而後面跟著的 /myjdbc,是指定要連線到 MySQL 資料庫中的 myjdbc 這個 database

並且在 myjdbc 後面的 ? 處,有加上兩個參數:

  • 其中 serverTimezone=Asia/Taipei 是表示我們指定所使用的時區是台北時區
  • characterEncoding=utf-8 則表示,我們所使用的編碼是 utf-8(這樣在處理中文的時候才不會出現亂碼)

3. spring.datasource.username

spring.datasource.username 是要填入 MySQL 資料庫中的帳號,此處填上預設的帳號 root

4. spring.datasource.password

spring.datasource.password 是填入上面那個帳號的密碼,此處填上 springboot

補充:這個 springboot 其實就是當初在安裝 MySQL 時所設定的密碼,可參考 Day 2 - 開發環境安裝(Mac 版)Day 3 - 開發環境安裝(Windows 版) 的介紹

而當大家在 application.properties 中設定好這四行程式之後,Spring Boot 到時候就會根據這四行程式,去連線到我們所指定的資料庫了!

補充:這篇文章先完成 application.properties 中的資料庫連線設定即可,有關 Spring JDBC 的用法,會在後續的文章介紹

補充:IntelliJ 中的資料庫管理工具(僅限付費版)


IntelliJ Ultimate (付費版) 中有一個非常好用的功能,就是讓我們可以直接透過 IntelliJ 中的介面,去管理資料庫中的數據

因此我們就不需要在 IntelliJ 和 MySQL workbench 這兩個視窗之間切來切去了,就只要使用 IntelliJ 這一套軟體,就可以同時達到「開發 Spring Boot 程式」和「管理資料庫中的數據」這兩件事情!

只要點擊 IntelliJ 右側的 Database 標籤,就可以開啟 IntelliJ 中的資料庫管理工具

https://ithelp.ithome.com.tw/upload/images/20231009/201510368egQydHSLz.png

接著可以點擊上方的 + 號,去新增一個 MySQL 資料庫的連線出來

https://ithelp.ithome.com.tw/upload/images/20231009/20151036tUmQVkgGHq.png

開啟設定的視窗之後,在 User 處填上 root,在 Password 處填上 springboot(此密碼即是當初安裝 MySQL 時設定的密碼)

https://ithelp.ithome.com.tw/upload/images/20231009/20151036QE0pb08ghe.png

填寫完成後,可以先試著點擊左下角的「Test Connection」,測試一下連線,只要出現 Succeeded 就表示連線成功!

測試完記得重新輸入一次 Password 的值 springboot(會被 IntelliJ 清掉),然後按下右下角的 OK 保存即可

https://ithelp.ithome.com.tw/upload/images/20231009/20151036Jcae7cuOsw.png

創建好 MySQL 連線之後,IntelliJ 就會跳出一個 console 的視窗,我們就可以在裡面撰寫 sql 語法,直接去存取這個 MySQL 資料庫中的數據

譬如說我們可以寫上以下的 sql,嘗試去創建一個 myjdbc 的 database 出來

CREATE DATABASE myjdbc

寫好之後,只需要按下左上方的「播放鍵」,就可以去執行這條 sql

而 sql 執行成功之後,在右側的視窗也會出現 myjdbc 的 database 資訊

https://ithelp.ithome.com.tw/upload/images/20231009/201510360B05GqwCsx.png

除了能夠創建 myjdbc database 之外,我們也是可以在這個 console 上面,去執行其他的 sql,在 myjdbc database 裡面去創建新的 table 出來的

譬如說我們可以寫上以下的程式,去創建一個 student table 出來

CREATE TABLE student (
    id INT PRIMARY KEY ,
    name VARCHAR(30)
)

不過此處要特別注意,在執行這個 sql 之前,需要先確認我們「是否是在 myjdbc 這個 database 底下運行 sql」,在 console 視窗的上方有一個 <schema> 的按鈕,點擊他之後會出現許多選項,此處就是在設定我們目前正在哪個 database 底下執行 sql

因此此處我們需要點擊 myjdbc,即是表示之後是在 myjdbc 這個 database 底下執行 sql 語法

https://ithelp.ithome.com.tw/upload/images/20231009/20151036SWZpZNDOqg.png

選擇好 myjdbc 之後,接著就可以回到 console 視窗上,然後點擊播放鍵,去執行 CREATE TABLE student .... 的 sql 語法了

執行完成之後,就會在右側的視窗中就會出現 student table 的資訊

https://ithelp.ithome.com.tw/upload/images/20231009/20151036JlJTn0Zivv.png

在右側視窗中的 student table 使用左鍵點擊兩下,就可以開啟該 table,查看該 table 中的數據,像是目前在 student table 中一筆數據都沒有

https://ithelp.ithome.com.tw/upload/images/20231009/20151036j2T9Bs8UXR.png

但如果我們回到 console 上,然後執行下面的 INSERT sql,在 student table 中插入一筆 Judy 的數據的話

INSERT INTO student(id, name) VALUES (1, 'Judy')

https://ithelp.ithome.com.tw/upload/images/20231009/20151036xjP27T85fY.png

那麼在 student table 中,就可以看到呈現了一筆 Judy 的數據出來了!

https://ithelp.ithome.com.tw/upload/images/20231009/20151036sSEHCHt5W7.png

因此我們之後就可以透過 IntelliJ 的這項工具,直接在 IntelliJ 中去查看和修改資料庫中的數據,所以我們就不用很煩的在各個視窗中切來切去了,以後只需要一個 IntelliJ 就可以打天下啦!!

總結


這篇文章先介紹了要如何在 Spring Boot 中載入 Spring JDBC 的功能,並且介紹要如何透過 Spring Boot 的設定檔 application.properties,去設定資料庫的連線資訊,最後也補充了 IntelliJ Ultimate (付費版) 中的好用的資料庫管理工具,幫助大家提升開發效率

那麼下一篇文章,我們就會接著來介紹 Spring JDBC 的用法,也就是要如何在 Spring Boot 程式裡面去執行 sql 語法,進而去操作資料庫中的數據,那我們就下一篇文章見啦!

相關連結



上一篇
Spring Boot 零基礎入門 (24) - Spring JDBC 簡介
下一篇
Spring Boot 零基礎入門 (26) - Spring JDBC 的用法 (上) - 執行 INSERT、UPDATE、DELETE sql
系列文
Spring Boot 零基礎入門30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0

不愧是近幾年的教學xD,下面的這個依賴都是最新的

<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <version>8.0.33</version>
</dependency>

這幾個禮拜找過不知道多少個 Spring 框架相關的教學
很多都因是較舊的文章,因此程式碼也是比較舊的,導致這段一直爆錯
我找了超多國外的影片和文章才找到上方這個
沒想到這個系列的文章就有附上
真的是太晚看到這篇文章啦!

我要留言

立即登入留言