java springBoot swagger

springBoot建立資料庫相關文件及swagger自動產生WebAPI規格文件

陳羿彣 2020/04/15 15:00:00
1567

 

此篇為自行建置的SpringBoot製作簡易CRUD配置MyBatis Generator及遇到的問題和解決

 

1.建立完springBoot專案後,資料夾長這樣

啟動SpringBoot專案console所印出的訊息

application.properties

spring.datasource.url=jdbc:mysql://mysql ip:mysql port/dbName

spring.datasource.username=mysql username

spring.datasource.password=mysql password

2.建立swagger資訊

pom.xml要輸入swagger相關資訊

建立swaggerConfig

note.emily.controller層

呈現頁面(controller層沒有api相關資訊,所以是空白的)

3.使用Eclipse MyBatis Generator plugin自動產生存取資料表的檔案

下載mybatis Generator

file-> new-> other-> MyBatis-> MyBatis Generator Configuration File 路徑選擇

使用MBG需要與資料庫連線的JDBC driver,所以要先下載MySQL的JDBC driver(MySQL connector for java),這邊是直接透過Maven下載。

然而設定好之後,會需要下載依賴的jar檔,而MBG需要使用MySql Connection的jar Maven預設放在
C:\Users\[username]\.m2\repository\mysql\mysql-connector-java\8.0.13

4.建立service、entity、mapper 的package

修改generatorConfig.xml,之後 Rus As Run MyBatis Generator

-> 這邊事先建立好table相關資訊,及mysql連線

[簡單說明]

1. <classPathEntry location : MySql Connection的jar Maven jar檔位置

2. <context id : tableName_mybatis_generator

3. <jdbcConnection connectionURL : "jdbc:mysql://自己設定的mysql ip:mysql port/dbName"

4.                 driverClass : "com.mysql.cj.jdbc.Driver" password : "自己設定的mysql password"

5. <table tableName : "自行建置的資料表名稱"

可以看到MBG在指定的package中產生了對應的檔案。往後我們就能直接利用MyBatis來存取資料庫的資料表了

6.CRUD範例

新增:

controller層

service層實作

swagger介面

mysql結果

修正:

controller層

service層實作

swagger介面

mysql結果

刪除:

controller層

service層實作

swagger介面

mysql結果

查詢

controller層

-> Vo 前端呈現

service層實作

-> QueryWrapper : Entity對象封裝操作類

-> eq("member_account", "abc") --> member_account=abc

結果

 

 

[------ 若出現以下問題,我是這樣解決 -----START------]

1.出現類似 The server time zone value '�x�_�зǮɶ�' is unrecognized....

-> 這代表數據庫與系統時區有差異造成,有兩個解決辦法

1-1 再jdbc連結的URL加上serverTimezone=UTC即可

1-2 修改 my.ini 配置檔,搜尋[mysqld]後新增default-time-zone='+08:00'

重啟mysql後執行show variables like '%time_zone%';

2.出現 Project moneynote does not exist

-> 這代表 targetProject 的屬性位置沒有正確,這邊解決辦法為眼睛張大仔細檢查

3.出現 Unknown database 'note'

-> 代表沒有note這個database,這時去mysql看一下

疑?還真的沒有database耶!

創note database

5.增加CRUD後,swagger Execute,出現這個錯誤 Invalid bound statement (not found)

-> 因為maven項目中src源代碼下的xml等資源文件編譯進classes文件夹,若沒有加這段,則會自動搜索resources下是否有mapper.xml文件

   若找不到,則會報org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)

   解決辦法為,pom.xml 新增紅框這段

[------ 若出現以下問題,我是這樣解決 -----END------]

 

 

參考

https://blog.csdn.net/m0_37034294/article/details/82917234

陳羿彣