低代碼代碼生成實(shí)戰(zhàn)教程:從數(shù)據(jù)庫(kù)表一鍵生成完整CRUD代碼)
摸魚(yú)低代碼代碼生成實(shí)戰(zhàn)教程從數(shù)據(jù)庫(kù)表一鍵生成完整CRUD代碼【免費(fèi)下載鏈接】mfish-nocode摸魚(yú)低代碼平臺(tái)是一款致力于讓開(kāi)發(fā)像摸魚(yú)一樣輕松的低代碼/無(wú)代碼平臺(tái)。首創(chuàng)微服務(wù)單體服務(wù)一體化架構(gòu)。基于SpringBoot4、Spring Ai、Vue3等最新前后端技術(shù)棧。已用于多個(gè)成熟項(xiàng)目學(xué)習(xí)和實(shí)戰(zhàn)兩不誤。我們希望打破技術(shù)門(mén)檻讓程序員和非程序員都能快速構(gòu)建業(yè)務(wù)系統(tǒng)提升效率釋放創(chuàng)造力。項(xiàng)目地址: https://gitcode.com/gh_mirrors/mf/mfish-nocode摸魚(yú)低代碼平臺(tái)mfish-nocode是一款致力于讓開(kāi)發(fā)像摸魚(yú)一樣輕松的低代碼/無(wú)代碼平臺(tái)其代碼生成功能可以直接讀取數(shù)據(jù)庫(kù)表結(jié)構(gòu)一鍵生成實(shí)體類(lèi)、Mapper、Service、Controller 等完整 CRUD 代碼。本文面向新手帶你從零完成一次真實(shí)的代碼生成實(shí)戰(zhàn) 。為什么需要代碼生成日常開(kāi)發(fā)中一個(gè)業(yè)務(wù)模塊往往要重復(fù)寫(xiě)實(shí)體類(lèi)、Mapper 接口與 XML、Service 接口與實(shí)現(xiàn)、Controller、前端頁(yè)面。一套下來(lái)幾十個(gè)文件結(jié)構(gòu)幾乎一樣純屬體力活。摸魚(yú)低代碼平臺(tái)的代碼生成器把這件事變成了三步走配置一個(gè)數(shù)據(jù)庫(kù)連接選擇要生成的表填寫(xiě)少量參數(shù)預(yù)覽、下載 ZIP 或一鍵保存到本地工程5 分鐘就能拿到一套可以直接編譯運(yùn)行的標(biāo)準(zhǔn) CRUD 代碼讓你把時(shí)間花在真正的業(yè)務(wù)邏輯上。代碼生成的實(shí)現(xiàn)原理30 秒了解平臺(tái)內(nèi)部由兩個(gè)核心模塊協(xié)作完成了解原理有助于你排錯(cuò)數(shù)據(jù)源連接模塊位于mf-common/mf-common-dblink/負(fù)責(zé)連接 MySQL、Oracle、PostgreSQL、SQL Server 等數(shù)據(jù)庫(kù)讀取表名、字段名、字段類(lèi)型和表注釋等元數(shù)據(jù)核心服務(wù)見(jiàn)mf-common/mf-common-dblink/src/main/java/cn/com/mfish/common/dblink/service/TableService.java代碼生成模塊位于mf-common/mf-common-code/使用 FreeMarker 模板引擎把表結(jié)構(gòu)數(shù)據(jù)渲染成代碼文件核心工具類(lèi)是mf-common/mf-common-code/src/main/java/cn/com/mfish/common/code/common/FreemarkerUtils.java代碼構(gòu)建服務(wù)位于mf-business/mf-sys/src/main/java/cn/com/mfish/sys/service/CodeBuildService.java提供新增配置、預(yù)覽代碼、下載 ZIP、保存到本地、創(chuàng)建菜單等能力一句話(huà)概括連接數(shù)據(jù)庫(kù) → 讀取表結(jié)構(gòu) → FreeMarker 模板渲染 → 輸出完整 CRUD 代碼包。實(shí)戰(zhàn)前的準(zhǔn)備工作1. 獲取項(xiàng)目源碼git clone https://gitcode.com/gh_mirrors/mf/mfish-nocode2. 初始化數(shù)據(jù)庫(kù)在平臺(tái)中代碼生成屬于低代碼中心的一部分。單實(shí)例模式下只需導(dǎo)入一個(gè)庫(kù)單實(shí)例導(dǎo)入db/mfish_nocode.sql微服務(wù)需導(dǎo)入mf_config.sql、mf_oauth.sql、mf_system.sql、mf_nocode.sql等分庫(kù)腳本3. 啟動(dòng)項(xiàng)目并登錄在mf-start/mf-start-boot/目錄下找到MfNoCodeStart啟動(dòng)類(lèi)運(yùn)行微服務(wù)部署方式請(qǐng)參考官方文檔啟動(dòng)成功后訪(fǎng)問(wèn) Swagger 接口文檔http://localhost:8888/swagger-ui/index.html平臺(tái)默認(rèn)賬號(hào)admin登錄后即可在菜單樹(shù)中看到低代碼 → 代碼生成入口代碼構(gòu)建相關(guān)的后端能力均由系統(tǒng)中心模塊承載。三步生成完整 CRUD 代碼第一步添加數(shù)據(jù)庫(kù)數(shù)據(jù)源進(jìn)入平臺(tái)后先在數(shù)據(jù)源管理中添加你的業(yè)務(wù)數(shù)據(jù)庫(kù)連接填入 JDBC 地址、賬號(hào)、密碼。平臺(tái)會(huì)通過(guò)連接池Druid/Hikari與數(shù)據(jù)庫(kù)建立連接連接成功后會(huì)自動(dòng)列出該庫(kù)下的所有表。 連接參數(shù)配置說(shuō)明可見(jiàn)mf-common/mf-common-dblink/src/main/java/cn/com/mfish/common/dblink/entity/DataSourceOptions.java第二步填寫(xiě)代碼生成參數(shù)選擇要生成的表填寫(xiě)以下參數(shù)參數(shù)定義見(jiàn)mf-common/mf-common-code/src/main/java/cn/com/mfish/common/code/req/ReqCode.java參數(shù)必填說(shuō)明數(shù)據(jù)庫(kù)連接?從數(shù)據(jù)源列表中選擇表名?要生成代碼的表包名否不填默認(rèn)cn.com.mfish.sys實(shí)體類(lèi)名否不填自動(dòng)用表名駝峰化如t_user→TUser接口前綴否不填取包名最末一段如sys查詢(xún)條件否指定哪些字段參與列表查詢(xún)支持等值/模糊匹配表描述否不填自動(dòng)讀取數(shù)據(jù)庫(kù)中的表注釋第三步預(yù)覽、下載或保存到本地配置完成后有三種產(chǎn)出方式在線(xiàn)預(yù)覽逐文件查看生成的代碼內(nèi)容確認(rèn)無(wú)誤再落盤(pán)下載 ZIP一鍵打包下載解壓后即為完整工程結(jié)構(gòu)保存本地直接寫(xiě)入你指定的前后端工程目錄后端代碼與前端代碼會(huì)自動(dòng)分流保存保存路徑由配置項(xiàng)code.savePath.back、code.savePath.front指定生成的代碼包含什么一套完整的 CRUD 代碼包通常包括層生成內(nèi)容實(shí)體層實(shí)體類(lèi)含字段、注釋、默認(rèn)字段自動(dòng)過(guò)濾數(shù)據(jù)層Mapper 接口 MyBatis XML 映射文件業(yè)務(wù)層Service 接口 ServiceImpl 實(shí)現(xiàn)增刪改查、分頁(yè)接口層Controller標(biāo)準(zhǔn) REST 風(fēng)格 CRUD 接口前端對(duì)應(yīng)的頁(yè)面/視圖代碼輸出到前端目錄幾個(gè)貼心的細(xì)節(jié) ?默認(rèn)字段自動(dòng)處理id、創(chuàng)建時(shí)間等公共字段不會(huì)重復(fù)生成業(yè)務(wù)代碼同時(shí)會(huì)自動(dòng)識(shí)別主鍵類(lèi)型字段自動(dòng)駝峰化數(shù)據(jù)庫(kù)下劃線(xiàn)命名自動(dòng)轉(zhuǎn)為 Java 駝峰命名注釋自動(dòng)繼承字段、表的中文注釋會(huì)寫(xiě)入生成代碼的 Javadoc查詢(xún)條件定制通過(guò)查詢(xún)條件配置可指定哪些字段參與列表搜索支持字典組件聯(lián)動(dòng)想改模板FreeMarker 模板定制平臺(tái)使用 FreeMarker 模板引擎生成代碼模板文件位于mf-common/mf-common-code/src/main/resources/template/目錄模板 Key 通過(guò)配置項(xiàng)code.template統(tǒng)一管理見(jiàn)mf-common/mf-common-code/src/main/java/cn/com/mfish/common/code/config/properties/FreemarkerProperties.java。如果你們團(tuán)隊(duì)有自己的代碼規(guī)范比如統(tǒng)一的異常風(fēng)格、分頁(yè)參數(shù)只需要修改模板文件即可無(wú)需改動(dòng)任何 Java 代碼——這就是生成代碼可被二次定制的關(guān)鍵設(shè)計(jì)。常見(jiàn)問(wèn)題FAQQ1提示包名格式不規(guī)范包名需符合 Java 包名規(guī)范如cn.com.mfish.sys不能以下劃線(xiàn)開(kāi)頭。Q2提示未獲取到字段信息檢查數(shù)據(jù)源連接是否可用、表名與表前綴schema是否正確。Q3單體和微服務(wù)兩種模式都能用嗎可以。平臺(tái)首創(chuàng)微服務(wù)單體一體化架構(gòu)同一套代碼既支持單體啟動(dòng)MfNoCodeStart也支持微服務(wù)部署代碼生成能力在兩種模式下完全一致。小結(jié)摸魚(yú)低代碼平臺(tái)的代碼生成器把一張表 → 一套 CRUD這件事做到了極致簡(jiǎn)單配置數(shù)據(jù)源填寫(xiě)表名與少量參數(shù)預(yù)覽、下載或保存到本地配合可定制的 FreeMarker 模板它既適合新手快速搭模塊也適合老手統(tǒng)一團(tuán)隊(duì)代碼規(guī)范。現(xiàn)在就可以選一張你的業(yè)務(wù)表動(dòng)手生成你的第一套 CRUD 代碼吧 【免費(fèi)下載鏈接】mfish-nocode摸魚(yú)低代碼平臺(tái)是一款致力于讓開(kāi)發(fā)像摸魚(yú)一樣輕松的低代碼/無(wú)代碼平臺(tái)。首創(chuàng)微服務(wù)單體服務(wù)一體化架構(gòu)。基于SpringBoot4、Spring Ai、Vue3等最新前后端技術(shù)棧。已用于多個(gè)成熟項(xiàng)目學(xué)習(xí)和實(shí)戰(zhàn)兩不誤。我們希望打破技術(shù)門(mén)檻讓程序員和非程序員都能快速構(gòu)建業(yè)務(wù)系統(tǒng)提升效率釋放創(chuàng)造力。項(xiàng)目地址: https://gitcode.com/gh_mirrors/mf/mfish-nocode創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考