在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

介紹一款基于Mybatis-Plus的代碼自助生成器

jf_ro2CN3Fa ? 來源:CSDN ? 2023-05-23 14:16 ? 次閱讀

前言

在基于Mybatis的開發(fā)模式中,很多開發(fā)者還會(huì)選擇Mybatis-Plus來輔助功能開發(fā),以此提高開發(fā)的效率。雖然Mybatis也有代碼生成的工具,但Mybatis-Plus由于在Mybatis基礎(chǔ)上做了一些調(diào)整,因此,常規(guī)的生成工具生成的代碼還有一些不太符合預(yù)期。而且對(duì)于多數(shù)據(jù)庫的支持不是很好。

因此,我們需要一款支持高度定制化,帶圖形UI頁面,能適配多數(shù)數(shù)據(jù)庫的基礎(chǔ)程序生成框架。

文章通過實(shí)例集成的方式來詳細(xì)講解mybatis-plus-generator-ui,感興趣的朋友可以自己clone下來,也可以自己進(jìn)行擴(kuò)展自定義。

一、mybatis-plus-generator-ui是什么?

它是對(duì)mybatis-plus-generator進(jìn)行封裝,通過Web UI快速生成兼容Spring boot,mybatis-plus框架的各類業(yè)務(wù)代碼。提供交互式的Web UI用于生成兼容mybatis-plus框架的相關(guān)功能代碼,包括Entity、Mapper、Mapper.xml、Service、Controller等,可以自定義模板以及各類輸出參數(shù),也可通過SQL查詢語句直接生成代碼。

90fbcf0e-f920-11ed-90ce-dac502259ad0.png91087a60-f920-11ed-90ce-dac502259ad0.png

功能列表:

Table查詢: 查詢配置的關(guān)系型數(shù)據(jù)庫表的列表查詢。

輸出配置: 對(duì)需要生成的相關(guān)代碼,比如Entity、Mapper、Servcie、Controller等代碼模板信息進(jìn)行配置,用于在轉(zhuǎn)換時(shí)調(diào)用。

項(xiàng)目導(dǎo)入: 可以導(dǎo)入其它項(xiàng)目配置好的信息給本項(xiàng)目使用。

下載模板: 支持本項(xiàng)目配置的模板信息下載后共享。

策略配置: 直接定義各種文件的生成策略。

模板上傳: 支持從別的項(xiàng)目中下載模板,同上傳供本項(xiàng)目使用。

SQL輸入上傳: 支持將查詢語句直接上傳或者復(fù)制到輸入框中。

SQL代碼生成: 基于SQL腳本生成相應(yīng)的代碼。

二、 mybatis-plus-generator-ui怎么用?

mybatis-plus-generator-ui提供以jar包的形式為外部項(xiàng)目提供服務(wù),通過配置的數(shù)據(jù)庫配置去讀取數(shù)據(jù)庫的配置信息,并通過Web UI的方式提供給開發(fā)者使用。mybatis-plus-generator-ui支持POSTGRE_SQL、ORACLE、DB2、MySQL、SQLSERVER等常見的關(guān)系型數(shù)據(jù)庫。

1、maven pom引入


4.0.0
com.yelang
mybatis-plus-generator-ui-case
0.0.1-SNAPSHOT



com.github.davidfantasy
mybatis-plus-generator-ui
1.4.5



org.postgresql
postgresql
42.2.25



2、新建程序入口,以main函數(shù)的方式運(yùn)行

mybatis-plus-generator-ui在1.4.0版本之后,可支持將GeberatorUIServer獨(dú)立部署為一個(gè)單獨(dú)的spring boot項(xiàng)目,通過頁面指定目標(biāo)項(xiàng)目根目錄的方式為多個(gè)項(xiàng)目提供源碼生成服務(wù)。這種方式適用于有多個(gè)項(xiàng)目庫需要獨(dú)立進(jìn)行開發(fā)的模式。實(shí)例關(guān)鍵代碼如下:

packagecom.yelang;

importcom.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
importcom.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;
importcom.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;

publicclassGeneratorMain{

publicstaticvoidmain(String[]args){
GeneratorConfigconfig=GeneratorConfig.builder().jdbcUrl("jdbc//127.0.0.1:5432/ghyapp")
.userName("ghy01").password("ghy01").driverClassName("org.postgresql.Driver")
//數(shù)據(jù)庫schema,POSTGRE_SQL,ORACLE,DB2類型的數(shù)據(jù)庫需要指定
//.schemaName("myBusiness")
//如果需要修改各類生成文件的默認(rèn)命名規(guī)則,可自定義一個(gè)NameConverter實(shí)例,覆蓋相應(yīng)的名稱轉(zhuǎn)換方法:
.nameConverter(newNameConverter(){
/**
*自定義Service類文件的名稱規(guī)則
*/
publicStringserviceNameConvert(StringtableName){
returnthis.entityNameConvert(tableName)+"Service";
}

/**
*自定義Controller類文件的名稱規(guī)則
*/
publicStringcontrollerNameConvert(StringtableName){
returnthis.entityNameConvert(tableName)+"Action";
}
}).basePackage("com.github.davidfantasy.mybatisplustools.example").port(8068).build();

MybatisPlusToolsApplication.run(config);

}

}

在上面的配置中,我們連接的示例數(shù)據(jù)庫是PostgerSQL,需要在Maven中定義相應(yīng)的驅(qū)動(dòng)程序,并且在上述代碼中正確配置相應(yīng)的類。最后指定了程序的運(yùn)行端口為8086,這種運(yùn)行方式跟SpringBoot非常相似。

3、實(shí)例運(yùn)行

運(yùn)行以上的main方法,在控制臺(tái)可以看到以下輸出即為成功部署。

9111ed5c-f920-11ed-90ce-dac502259ad0.png

在輸出的日志中,可以看到程序的運(yùn)行端口,以及默認(rèn)的模板目錄地址。

三、mybatis-plus-generator-ui代碼生成

1、Table的查詢和瀏覽

可以直接瀏覽和查詢配置的數(shù)據(jù)源的數(shù)據(jù)表信息,可選擇一個(gè)或多個(gè)生成模板代碼。

911aea60-f920-11ed-90ce-dac502259ad0.png

2、輸出配置

內(nèi)置Entity、Mapper、Service、Controller等6種類型代碼的模板配置,可以上傳模板進(jìn)行替換,并修改各類參數(shù),配置參數(shù)已經(jīng)按照影響的文件類型重新進(jìn)行了分類,并加入了部分文本說明;也可以自行添加其它類型的自定義輸出文件。所有的配置項(xiàng)都會(huì)按照項(xiàng)目包名進(jìn)行保存,只需一次性設(shè)置就可以了。

9122238e-f920-11ed-90ce-dac502259ad0.png

3、策略配置

將每次生成代碼時(shí)可能變動(dòng)的內(nèi)容加入到代碼生成選項(xiàng)中,方便調(diào)整每次的生成策略,比如:是否覆蓋原文件,生成文件的種類等等:

912962b6-f920-11ed-90ce-dac502259ad0.png

4、SQL配置生成

通過輸入查詢SQL,可自動(dòng)在Mapper(Xml及Java)中生成對(duì)應(yīng)的查詢方法,DTO對(duì)象和ResultMap(結(jié)果集映射配置)

9132b488-f920-11ed-90ce-dac502259ad0.png

5、代碼生成

91379962-f920-11ed-90ce-dac502259ad0.png913dc148-f920-11ed-90ce-dac502259ad0.png

四、自定義擴(kuò)展

1、相關(guān)模板調(diào)整

在相關(guān)的頁面中,可以進(jìn)行相應(yīng)的調(diào)整,在對(duì)應(yīng)的btl模板中下載對(duì)應(yīng)文件的具體模板,使用文本工具打開,直接修改源代碼,文中取一種方式示例,其它方式一樣。

9148749e-f920-11ed-90ce-dac502259ad0.png914e860e-f920-11ed-90ce-dac502259ad0.png

2、代碼層級(jí)的配置

在一些團(tuán)隊(duì)中,肯定對(duì)Mapper的定義為Dao,Controller層需要定義為Action,通過修改代碼模板btl的方式是可以的,還有一種方式是通過調(diào)整內(nèi)部映射的方式來進(jìn)行修改。主要使用的類是NameConverter。

/**
*自定義Service類文件的名稱規(guī)則
*/
publicStringserviceNameConvert(StringtableName){
returnthis.entityNameConvert(tableName)+"Service";
}

/**
*自定義Controller類文件的名稱規(guī)則
*/
publicStringcontrollerNameConvert(StringtableName){
returnthis.entityNameConvert(tableName)+"Action";
}

除了Service、Controller、Entity、FieldName都可以實(shí)現(xiàn)自定義的擴(kuò)展。下面是NameConverter類的核心代碼,這里有詳細(xì)的定義。

packagecom.github.davidfantasy.mybatisplus.generatorui.mbp;

importcn.hutool.core.util.StrUtil;
importcom.github.davidfantasy.mybatisplus.generatorui.dto.Constant;
importcom.google.common.base.Strings;

importstaticcom.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_JAVA;
importstaticcom.github.davidfantasy.mybatisplus.generatorui.dto.Constant.DOT_XML;

/**
*自定義各類名稱轉(zhuǎn)換的規(guī)則
*/
publicinterfaceNameConverter{

/**
*自定義Entity.java的類名稱
*
*@paramtableName表名稱
*@return
*/
defaultStringentityNameConvert(StringtableName){
if(Strings.isNullOrEmpty(tableName)){
return"";
}
tableName=tableName.substring(tableName.indexOf(StrUtil.UNDERLINE)+1,tableName.length());
returnStrUtil.upperFirst(StrUtil.toCamelCase(tableName.toLowerCase()));
}

/**
*自定義表字段名到實(shí)體類屬性名的轉(zhuǎn)換規(guī)則
*
*@paramfieldName表字段名稱
*@return
*/
defaultStringpropertyNameConvert(StringfieldName){
if(Strings.isNullOrEmpty(fieldName)){
return"";
}
if(fieldName.contains("_")){
returnStrUtil.toCamelCase(fieldName.toLowerCase());
}
returnfieldName;
}

/**
*自定義Mapper.java的類名稱
*/
defaultStringmapperNameConvert(StringtableName){
returnentityNameConvert(tableName)+"Mapper";
}

/**
*自定義Mapper.xml的文件名稱
*/
defaultStringmapperXmlNameConvert(StringtableName){
returnentityNameConvert(tableName)+"Mapper";
}

/**
*自定義Service.java的類名稱
*/
defaultStringserviceNameConvert(StringtableName){
return"I"+entityNameConvert(tableName)+"Service";
}

/**
*自定義ServiceImpl.java的類名稱
*/
defaultStringserviceImplNameConvert(StringtableName){
returnentityNameConvert(tableName)+"ServiceImpl";
}

/**
*自定義Controller.java的類名稱
*/
defaultStringcontrollerNameConvert(StringtableName){
returnentityNameConvert(tableName)+"Controller";
}

/**
*自定義其它生成文件的文件名(不包括entity,mapper.java,mapper.xml,service,serviceImpl,controller這6種)
*
*@paramfileType在頁面上輸入的輸出文件標(biāo)識(shí)
*@paramtableName關(guān)聯(lián)的數(shù)據(jù)表名稱名稱
*@return生成文件的名稱,帶后綴
*/
defaultStringoutputFileNameConvert(StringfileType,StringtableName){
if(fileType.equals(Constant.FILE_TYPE_ENTITY)){
returnthis.entityNameConvert(tableName)+DOT_JAVA;
}elseif(fileType.equals(Constant.FILE_TYPE_MAPPER)){
returnthis.mapperNameConvert(tableName)+DOT_JAVA;
}elseif(fileType.equals(Constant.FILE_TYPE_MAPPER_XML)){
returnthis.mapperXmlNameConvert(tableName)+DOT_XML;
}elseif(fileType.equals(Constant.FILE_TYPE_SERVICE)){
returnthis.serviceNameConvert(tableName)+DOT_JAVA;
}elseif(fileType.equals(Constant.FILE_TYPE_SERVICEIMPL)){
returnthis.serviceImplNameConvert(tableName)+DOT_JAVA;
}elseif(fileType.equals(Constant.FILE_TYPE_CONTROLLER)){
returnthis.controllerNameConvert(tableName)+DOT_JAVA;
}
returnthis.entityNameConvert(tableName)+fileType;
}

}

mybatis-plus-generator-ui的功能非常豐富,甚至針對(duì)ui都是可以自定義修改的。如果需要定制UI的話,將代碼clone下來后,進(jìn)入到frontend目錄下,進(jìn)行相應(yīng)的擴(kuò)展開發(fā)。

9156104a-f920-11ed-90ce-dac502259ad0.png

修改完成后,需要另行編譯srcfrontend中的靜態(tài)資源(源碼中不包含已編譯的頁面),在srcfrontend文件夾中執(zhí)行:

yarninstall
yarnrunbuild

五、總結(jié)

以上就是今天要講的內(nèi)容,本文簡(jiǎn)要介紹一款基于Mybatis-Plus的代碼自助生成器。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    21736
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    849

    瀏覽量

    27643
  • mybatis
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    6880

原文標(biāo)題:MyBatis-Plus 可視化代碼生成器來啦,讓你的開發(fā)效率大大提速!!

文章出處:【微信號(hào):芋道源碼,微信公眾號(hào):芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何生成mybatisplus

    我在詳細(xì)的講解下官方的文檔。 2、添加依賴 MyBatis-Plus 從 3.0.3 之后移除了代碼生成器與模板引擎的默認(rèn)依賴,需要手動(dòng)添加相關(guān)依賴。 ①、添加
    的頭像 發(fā)表于 09-25 14:23 ?974次閱讀
    如何<b class='flag-5'>一</b>鍵<b class='flag-5'>生成</b>mybatisplus

    懶人C51代碼生成器

    懶人C51代碼生成器,一款小軟件
    發(fā)表于 11-30 00:18

    AllJoyn C++代碼生成器

    AllJoyn 團(tuán)隊(duì)非常激動(dòng)地向廣大開發(fā)商宣布,一款新工具已經(jīng)問世——代碼生成器。如果您擁有定義的 AllJoyn 服務(wù)接口規(guī)范,即可通過運(yùn)行此代碼
    發(fā)表于 09-19 18:11

    推薦一款:【靈生】單片機(jī)代碼自動(dòng)生成器(自動(dòng)編程工具)

    推薦一款:【靈生】單片機(jī)代碼自動(dòng)生成器(自動(dòng)編程工具)以往編寫單片機(jī)程序全靠程序員敲代碼,門檻高,學(xué)習(xí)困難,不容易入門,而且編程繁瑣,本軟件只需要鼠標(biāo)
    發(fā)表于 12-21 16:53

    介紹下ABOV提供的代碼生成器

    的開發(fā),下面介紹下ABOV提供的代碼生成器,絲毫不輸CUBEMX,且ABOV單片機(jī)基本都支持keil開發(fā)環(huán)境。。2. ABOV的代碼
    發(fā)表于 11-19 08:06

    安利一款專門用于stm芯片的代碼生成器

    大家安利一款特別實(shí)用的軟件,這是ST公司專門用于stm芯片的代碼生成器,它能為我們省去許多步驟,以可視化的方式為我們呈現(xiàn)出來,特別的方便。STM32CubeMX 是 ST 意法半導(dǎo)體近幾年來大力推薦的STM32 芯片圖形化配置工
    發(fā)表于 02-21 07:33

    代碼生成器的應(yīng)用

    jeesite框架代碼生成器,可以很方便的生成代碼,挺不錯(cuò)的。
    發(fā)表于 01-14 15:19 ?0次下載

    數(shù)碼管代碼生成器

    數(shù)碼管代碼生成器,迅速生成數(shù)碼管的相應(yīng)代碼
    發(fā)表于 04-25 10:54 ?44次下載

    STM32庫函數(shù)代碼自動(dòng)生成器正式版

    STM32庫函數(shù)代碼自動(dòng)生成器正式版 STM32庫函數(shù)代碼自動(dòng)生成器正式版
    發(fā)表于 07-25 18:52 ?0次下載

    篇讓你熟練掌握 MyBatis-Plus

    MyBatis-plus一款 Mybatis 增強(qiáng)工具,用于簡(jiǎn)化開發(fā),提高效率。下文使用縮寫 mp來簡(jiǎn)化表示 MyBatis-plus,本文主要
    的頭像 發(fā)表于 06-01 09:30 ?2848次閱讀
    <b class='flag-5'>一</b>篇讓你熟練掌握 <b class='flag-5'>MyBatis-Plus</b>!

    python生成器是什么

    python生成器 1. 什么是生成器? 生成器(英文名 Generator ),是個(gè)可以像迭代器那樣使用for循環(huán)來獲取元素的函數(shù)。 生成器
    的頭像 發(fā)表于 02-24 15:53 ?3901次閱讀

    MyBatis-Plus的使用與測(cè)試

    本文主要介紹mybatis-plus這款插件,針對(duì)springboot用戶。包括引入,配置,使用,以及擴(kuò)展等常用的方面做個(gè)匯總整理,盡量包含大家常用的場(chǎng)景內(nèi)容。
    的頭像 發(fā)表于 08-22 11:56 ?1640次閱讀

    將使用代碼生成器生成的項(xiàng)目移植到與智能配置器起使用的項(xiàng)目

    將使用代碼生成器生成的項(xiàng)目移植到與智能配置器起使用的項(xiàng)目
    發(fā)表于 01-11 19:00 ?0次下載
    將使用<b class='flag-5'>代碼</b><b class='flag-5'>生成器</b><b class='flag-5'>生成</b>的項(xiàng)目移植到與智能配置器<b class='flag-5'>一</b>起使用的項(xiàng)目

    MyBatis-Plus為什么不支持聯(lián)表

    MyBatis Plus Join`一款專門解決MyBatis Plus 關(guān)聯(lián)查詢問題的擴(kuò)展框架,他并不
    的頭像 發(fā)表于 02-28 15:19 ?2974次閱讀
    <b class='flag-5'>MyBatis-Plus</b>為什么不支持聯(lián)表

    Mybatis-plus批量插入太慢?

    「內(nèi)置代碼生成器:」 采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼
    的頭像 發(fā)表于 08-25 15:24 ?1071次閱讀
    <b class='flag-5'>Mybatis-plus</b>批量插入太慢?
    主站蜘蛛池模板: 九九视频只有精品 | 久久国产伦三级理电影 | 日本不卡一区视频 | 女人双腿搬开让男人桶 | 亚洲天堂亚洲天堂 | 天天干视频网站 | 天堂网最新 | 特级片毛片 | 黄色一级片在线观看 | 欧美成人天天综合天天在线 | 免费看美女的逼 | 新版天堂资源在线官网8 | 激情深爱五月 | 狠狠色噜噜狠狠狠狠黑人 | 欧美视频不卡一区二区三区 | 中文字幕天天干 | 黄色免费看网站 | 黄色小视频免费看 | 色噜噜综合网 | 色播在线视频 | 99久久精品久久久久久婷婷 | 野外啪啪抽搐一进一出 | 久久婷婷激情综合色综合也去 | 四虎在线最新永久免费 | 俺也来俺也去俺也射 | 91九色porny蝌蚪 | 国产深夜福利在线观看网站 | 寡妇影院首页亚洲图片 | 高清成年美女xx免费网站黄 | 久久精品国产福利 | 特黄特色大片免费视频播放 | 免费在线观看一区二区 | 色综合天天综合网国产成人 | 亚洲福利视频一区 | 日日干日日爽 | 色综合久久88 | 在线观看一级毛片 | 精品一区 二区三区免费毛片 | 日本黄色大片免费看 | 日韩色网 | 亚洲第一免费网站 |