基于SSM源代碼風(fēng)格Java代碼生成器 Maven版開箱即用 摸魚神器

一味抖、序言

UCode Cms 是一款Maven版的Java源代碼生成器甥啄,是快速構(gòu)建項目的利器一疯。代碼生成器模塊屬于可拆卸模塊撼玄,即按需引入。代碼生成器生成SSM(Spring墩邀、SpringBoot掌猛、MybatisPlus)風(fēng)格的源代碼。

面試時經(jīng)常提到面向?qū)ο缶幊堂级茫瑢嶋H開發(fā)中常常是面向數(shù)據(jù)庫編程荔茬,隨著需求的快速變化,數(shù)據(jù)庫的庫表結(jié)構(gòu)也需要相應(yīng)變化竹海,如何根據(jù)庫表結(jié)構(gòu)的變化慕蔚,快速響應(yīng)到源代碼層次,是Java代碼生成器主要的關(guān)切點斋配。

功能亮點

實時讀取庫表結(jié)構(gòu)元數(shù)據(jù)信息孔飒,比如表名、字段名艰争、字段類型十偶、注釋等,選中修改后的表园细,點擊一鍵生成惦积,代碼成即可提現(xiàn)出表結(jié)構(gòu)的變化。

單表快速轉(zhuǎn)化restful風(fēng)格的API接口并對外暴露服務(wù)猛频。對于百余張表的數(shù)據(jù)庫狮崩,使用代碼生成器讓開發(fā)事半功倍蛛勉。

多表連接查詢。多表連接查詢默認(rèn)不開啟睦柴,需要在全局文件中手動配置诽凌。開啟后代碼生成器會自動讀取數(shù)據(jù)庫元數(shù)據(jù)信息中的主外鍵關(guān)系,分別生成一對一坦敌、一對多侣诵、多對多風(fēng)格的源代碼。

生成的代碼接口可通過Swagger暴露狱窘。

二杜顺、運行依賴服務(wù)

代碼生成器運行依賴Mysql數(shù)據(jù)庫、Redis服務(wù)蘸炸,版本不限躬络。

Mysql數(shù)據(jù)庫

Mysql數(shù)據(jù)庫中庫表結(jié)構(gòu)分為兩部分,一是系統(tǒng)運行必要的系統(tǒng)表(跟代碼生成業(yè)務(wù)無關(guān))搭儒,二是用戶自定義的庫表穷当,代碼生成將會讀取。

Redis服務(wù)

Redis服務(wù)跟代碼生成業(yè)務(wù)無關(guān)淹禾,系統(tǒng)中其它業(yè)務(wù)用到Redis馁菜,因此也依賴Redis服務(wù)。

三铃岔、快速入門使用

使用demo腳手架cms demo項目火邓,可直接跳轉(zhuǎn)到步驟三。腳手架是標(biāo)準(zhǔn)的Spring Web工程德撬,內(nèi)置少量配置信息铲咨,用戶替換后可快速上手。

1蜓洪、前提條件

引入如下依賴是使用代碼生成器功能的前提條件纤勒,其中代碼生成器模塊在代碼生成完畢后,建議移出隆檀。

<!--ucode-cms核心依賴-->
<dependency>
    <groupId>xin.altitude.cms</groupId>
    <artifactId>ucode-cms-spring-boot-starter</artifactId>
    <version>1.3.3</version>
</dependency>
<!--代碼生成器模塊(非必選)-->
<dependency>
    <groupId>xin.altitude.cms.code</groupId>
    <artifactId>ucode-cms-code-spring-boot-starter</artifactId>
    <version>1.3.3</version>
</dependency>
2摇天、全局配置

環(huán)境變量必須綁定為開發(fā)環(huán)境,代碼生成器僅在開發(fā)模式下生效恐仑。打包時即使不移除相關(guān)Maven依賴泉坐,運行時在非開發(fā)環(huán)境時,相應(yīng)代碼不加載裳仆。建議在打包時移除腕让。

spring:
  profiles:
    active: dev
3、數(shù)據(jù)庫文件

數(shù)據(jù)庫腳本有兩類:核心SQL和用戶自定義表結(jié)構(gòu)。

sql/
├── cms(必選).sql                                 // 核心腳本(必選)    

導(dǎo)入系統(tǒng)表后纯丸,用戶需自定義業(yè)務(wù)表偏形,方可體驗代碼生成的功能。

4觉鼻、連接數(shù)據(jù)庫

如果已經(jīng)配置完數(shù)據(jù)庫連接俊扭,則可忽略此步驟

spring:
  datasource:
    # 主庫數(shù)據(jù)源
    url: jdbc:mysql://localhost:3306/ucode-cms?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
    username: root
    password: 123456
5、可視化界面

訪問可視化界面操作需要生成代碼的表

image-20220216105356896
6坠陈、重啟項目

勾選表結(jié)構(gòu)萨惑,點擊生成,重啟項目仇矾,相應(yīng)的代碼生效庸蔼。訪問地址http://localhost:8080/doc.html訪問接口列表。

image

四若未、高級使用

在完成簡單入門體驗后朱嘴,需要了解代碼生成的高級部分倾鲫,即全局配置粗合。在項目中搜索類名CodeProperties即可查看所有內(nèi)置可供修改的參數(shù),在全局yml文件中覆蓋默認(rèn)值即可完成修改乌昔,按需配置隙疚。

單表處理

當(dāng)全局配置ucode.code.joinQuery = false或者使用默認(rèn)配置時,則僅處理單表結(jié)構(gòu)磕道。將表名供屉、字段名、字段類型溺蕉、備注信息轉(zhuǎn)化為SSM風(fēng)格的源代碼伶丐。

多表連接

當(dāng)在全局配置ucode.code.joinQuery = true時,則手動開啟主外鍵查詢疯特,系統(tǒng)會自動讀取表的主外鍵關(guān)系哗魂,并將其轉(zhuǎn)化為連接查詢的源代碼。

主要參數(shù)
參數(shù) 默認(rèn)值 使用備注
ucode.code.projectDir 用戶自定義多模塊項目需要指定項目名
ucode.code.removeTablePrefix false 根據(jù)需要是否在生成代碼時移除表前綴
ucode.code.packageName xin.altitude.front 配置用戶自己的包名
ucode.code.useLombok true 默認(rèn)使用Lombok
ucode.code.filterSysTable true 默認(rèn)過濾不顯示系統(tǒng)表
ucode.code.joinQuery false 是否使用連接查詢(默認(rèn)單表查詢)
ucode.code.xml.addXml false 雖然說不建議使用XML文件編寫SQL漓雅,但仍提高可開啟開關(guān)
ucode.code.mapper.useCache true 默認(rèn)開啟二級緩存录别,自定義業(yè)務(wù)緩存可關(guān)閉
補(bǔ)充信息

使用腳手架,快速體驗入手代碼生成器

代碼生成器開源項目源碼地址


2.017.jpeg

原文地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末邻吞,一起剝皮案震驚了整個濱河市组题,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌抱冷,老刑警劉巖崔列,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異旺遮,居然都是意外死亡峻呕,警方通過查閱死者的電腦和手機(jī)利职,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瘦癌,“玉大人猪贪,你說我怎么就攤上這事⊙端剑” “怎么了热押?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長斤寇。 經(jīng)常有香客問我桶癣,道長,這世上最難降的妖魔是什么娘锁? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任牙寞,我火速辦了婚禮,結(jié)果婚禮上莫秆,老公的妹妹穿的比我還像新娘间雀。我一直安慰自己,他們只是感情好镊屎,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布惹挟。 她就那樣靜靜地躺著,像睡著了一般缝驳。 火紅的嫁衣襯著肌膚如雪连锯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天用狱,我揣著相機(jī)與錄音运怖,去河邊找鬼。 笑死夏伊,一個胖子當(dāng)著我的面吹牛摇展,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播署海,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吗购,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了砸狞?” 一聲冷哼從身側(cè)響起捻勉,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刀森,沒想到半個月后踱启,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年埠偿,在試婚紗的時候發(fā)現(xiàn)自己被綠了透罢。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡冠蒋,死狀恐怖羽圃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情抖剿,我是刑警寧澤朽寞,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站斩郎,受9級特大地震影響脑融,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缩宜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一肘迎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧锻煌,春花似錦妓布、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽史简。三九已至乃秀,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間圆兵,已是汗流浹背跺讯。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留殉农,地道東北人刀脏。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像超凳,于是被迫代替她去往敵國和親愈污。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容