替換專案資料庫

這裡將使用Spring官方提供的範例專案,並將原本的H2資料庫換成MariaDB。

下載範例專案

請至下列網址

根據你的習慣將專案下載到你的電腦,並使用IDE開啟專案(請開啟complete資料夾),以下教學使用IntelliJ IDEA。

修改pom.xml

透過修改pom.xml可以修改專案使用到的Maven dependency,因為要使用MariaDB,所以我們要把原來專案使用的H2換成MariaDB,請在pom.xml裡找到下列程式碼。

並替換成

修改pom.xml後,請重新載入Maven(點擊第一個icon)

重新載入Maven

設定application.properties

接著我們要修改Spring Boot設定檔(application.properties),請先在main資料夾底下新增resources資料夾,並在裡面新增application.properties設定檔。

將下列程式碼貼到application.properties

設定開發用資料庫

目前我們在Windows上先測試程式能連線到資料庫,之後將程式封裝(package),再放到Linux Server上面跑。

下載MariaDB

請至下列網址下載,版本建議選擇最新的LTS,目前是10.11.5。

安裝MariaDB

安裝過程中請設定root密碼以及勾選將UTF8作為預設編碼,其他設定保持預設即可。

新增資料庫

請開啟MySQL Client

輸入root密碼登入

輸入以下指令新增開發用資料庫,請根據自己需求替換資料庫名稱、資料庫使用者、資料庫使用者的密碼。

設定環境變數

我們剛剛在application.properties裡面使用了環境變數來設定資料庫的連線資訊,因此我們現在要設定Windows環境變數,你可以在控制台找到相關設定。

選擇右下角的環境變數

在使用者變數的右下角選擇新增,基本上設定使用者變數就足夠了,不需要去設定系統變數。

點擊新增
填入變數名稱和變數值

變數名稱
變數值

Vaadin_DB_URL

jdbc:mariadb://localhost:3306/newdatabase

Vaadin_DB_USER

newdatabaseuser

Vaadin_DB_PASSWORD

password

circle-info

請將newdatabase替換為之前新增資料庫時設定的資料庫名稱

請將newdatabaseuser替換為之前新增資料庫時設定的資料庫使用者名稱

請將password替換為之前新增資料庫時設定的資料庫使用者密碼

執行專案

circle-exclamation

按下右上的執行按鈕即可執行專案,範例專案是採用Java 17,如果用其他版本的Java不確定會不會出錯,如果出錯請換回Java 17。

成功的話可以在 http://localhost:8080/arrow-up-right 看到下列畫面

要怎麼確定資料已經存入資料庫呢?

你可以先點擊New customer新增測試使用者,接著把程式關掉,把電腦重新啟動,之後再重新執行專案,如果你一開始的新增的測試使用者資料還在的話,就表示你成功了,不過你還會發現,每次執行都會多5個使用者,這是因為我們的程式執行時(初始化)會加入預設的5個使用者,所以第一次執行加入5個,加入我們自己新增的測試使用者,第二次執行再加入另外預設的5個使用者,總共有11個使用者,那其實跟我們想像的不太一樣,有幾個方法可以參考,第一種,不要讓程式在一開始幫我們自動加入使用者;第二種,檢查資料庫裏面有沒有資料,沒有的話再初始化(自動加入5個預設使用者),有的話就不要初始化。

修改資料庫初始化條件

我們這裡採用第二種做法,也就是當資料庫有東西時,不要再初始化資料庫,如果沒東西的話再初始化,請修改CrudWithVaadinApplication.java裡的loadData方法為以下程式碼

你會發現原本每次重新跑程式都會新增的5個預設使用者現在不會再新增了,會跟上次你停止程式時的使用者資料一樣,這表示你成功儲存資料到資料庫而且解決了初始化的問題。

結論

對於剛接觸Spring Boot的讀者來說,連接資料庫可能是困難的,不過其實並沒有想像中的那樣困難,讀者可善用Spring Data JPA,它已經封裝了一些JDBC的CRUD功能,你甚至可以做到不用寫SQL就可以操作資料庫,是個對於新手很方便的依賴(dependency)。

Last updated