一、模塊簡介
1、功能亮點
實時讀取庫表結構元資料資訊,比如表名、欄位名、欄位型別、注釋等,選中修改后的表,點擊一鍵生成,代碼成即可提現出表結構的變化,
單表快速轉化restful風格的API介面并對外暴露服務,對于百余張表的資料庫,使用代碼生成器讓開發事半功倍,
多表連接查詢,多表連接查詢默認不開啟,需要在全域檔案中手動配置,
開啟多表連接查詢后,代碼生成器會自動讀取資料庫元資料資訊中的主外鍵關系,分別生成一對一、一對多、多對多風格的源代碼,
生成的代碼介面可通過Swagger暴露,
2、運行依賴服務
代碼生成器運行依賴Mysql資料庫,版本不限,
- Mysql資料庫
Mysql資料庫中庫表結構為用戶自定義的庫表,代碼生成將會讀取,專案SQL腳本提供5張測驗表,方便用于測驗使用,
3、代碼生成器2.0
代碼生成器升級內容如下:
- 移除Redis服務強依賴
- 移除登陸依賴
- 移除系統SQL腳本依賴
當前代碼生成器屬于2.0版本,
二、兩種典型使用場景
(一)克隆Demo專案
使用demo腳手架cms demo專案 ,腳手架是標準的Spring Web工程,稍微修改組態檔可快速入門上手,
# 拉去腳手架,并初始化專案
git clone https://gitee.com/decsa/demo-code.git
1、修改資料庫連接配置
運行測驗SQL腳本,添加資料庫表結構,開始體驗代碼生成的功能,
spring:
datasource:
url: jdbc:mysql://localhost:3306/ucode-cms
username: root
password: 123456
2、添加依賴
檢查pom檔案中是否包含代碼生成器Maven包依賴,如果沒有,則添加如下依賴
<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.5.6.1</version>
</dependency>
3、可視化界面
配置完上述連接后,啟動專案,訪問http://localhost:8080進入控制臺界面,

點擊免登錄進入代碼生成器,進入管理界面,

勾選表結構,點擊生成,重啟專案,相應的代碼生效,
4、重啟專案
訪問地址http://localhost:8080/doc.html 訪問介面串列,
(二)獨立創建專案
獨立創建專案支持從零構建代碼生成器運行環境,既支持嵌入已存在的專案中,也支持新創建的專案,2.0版本重點優化此部分內容,
1、添加依賴
<!--代碼本地化生成依賴-->
<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.5.6.1</version>
</dependency>
如果使用代碼生成器功能,則代碼本地化生成依賴為必選項,
2、配置資料庫連接
資料庫連接配置對應的資料庫應包含帶生成代碼的庫表結構,
spring:
datasource:
url: jdbc:mysql://localhost:3306/ucode-cms
username: root
password: 123456
3、啟動專案
啟動專案后,訪問http://localhost:8080進入代碼生成器控制臺界面,
選中對應表,點擊生成代碼,在專案中便新添相應的代碼,
再次重啟專案,訪問http://localhost:8080/doc.html查看介面串列,
三、高級使用
在完成簡單入門體驗后,需要了解代碼生成的高級部分,即全域配置,在專案中搜索類名CodeProperties即可查看所有內置可供修改的引數,在全域yml檔案中覆寫默認值即可完成修改,按需配置,
1、單表處理
當全域配置ucode.code.joinQuery = false或者使用默認配置時,則僅處理單表結構,將表名、欄位名、欄位型別、備注資訊轉化為SSM風格的源代碼,
2、多表連接
當在全域配置ucode.code.joinQuery = true時,則手動開啟主外鍵查詢,系統會自動讀取表的主外鍵關系,并將其轉化為連接查詢的源代碼,
3、主要引數
| 引數 | 默認值 | 使用備注 |
|---|---|---|
ucode.code.projectDir |
空 | 用戶自定義多模塊專案需要指定專案名 |
ucode.code.removeTablePrefix |
false |
根據需要是否在生成代碼時移除表前綴 |
ucode.code.packageName |
xin.altitude.front |
配置用戶自己的包名 |
ucode.code.useLombok |
true |
默認使用Lombok |
ucode.code.filterSysTable |
true |
默認過濾不顯示系統表 |
ucode.code.joinQuery |
false |
是否使用連接查詢(默認單表查詢) |
ucode.code.xml.addXml |
false |
雖然說不建議使用XML檔案撰寫SQL,但仍提高可開啟開關 |
ucode.code.mapper.useCache |
true |
默認開啟二級快取,自定義業務快取可關閉 |
四、常見問題
1、找不到依賴?
找不到依賴很大可能是因為阿里云景象倉庫尚未同步完成Jar包,在專案中pom檔案添加如下配置:
<repository>
<id>public</id>
<name>maven nexus</name>
<url>https://repo1.maven.org/maven2/</url>
<snapshots>
<updatePolicy>always</updatePolicy>
</snapshots>
<releases>
<updatePolicy>always</updatePolicy>
</releases>
</repository>
2、專案打包發布時如何處理代碼生成器依賴?
專案打包發布時建議手動移除代碼生成器依賴,實際上代碼生成器的生命周期存在于開發階段,手動不移除對打包不會產生影響,但仍然建議在打包時移除代碼生成器依賴,
<!--代碼生成器模塊(非必選)-->
<dependency>
<groupId>xin.altitude.cms</groupId>
<artifactId>ucode-cms-code-spring-boot-starter</artifactId>
<version>1.5.6.1</version>
</dependency>
3、多表連接查詢例外
對表連接查詢是一項復雜的業務,目前支持:一個員工對應一個部門(一對一)、一個部門對應多個員工(一對多)、一名學生可選修多門課程每門課程可被多名學生選修(多對多),
更高級別的套娃尚不支持,
4、生成后的代碼能無縫遷移到新專案嗎?
能,生成的代碼具有高度的遷移屬性,在新專案中匯入預設依賴即可,如果找不到相關依賴,請參考問題一,
喜歡本文就【??推薦??】一下,激勵我持續創作,這個Github同樣精彩,收到您的star我會很激動,本文歸檔在專題博客,視頻講解在B站,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/491933.html
標籤:Java
