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

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

前言

在基于Mybatis的開發模式中,很多開發者還會選擇Mybatis-Plus來輔助功能開發,以此提高開發的效率。雖然Mybatis也有代碼生成的工具,但Mybatis-Plus由于在Mybatis基礎上做了一些調整,因此,常規的生成工具生成的代碼還有一些不太符合預期。而且對于多數據庫的支持不是很好。

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

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

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

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

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

功能列表:

Table查詢: 查詢配置的關系型數據庫表的列表查詢。

輸出配置: 對需要生成的相關代碼,比如Entity、Mapper、Servcie、Controller等代碼模板信息進行配置,用于在轉換時調用。

項目導入: 可以導入其它項目配置好的信息給本項目使用。

下載模板: 支持本項目配置的模板信息下載后共享。

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

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

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

SQL代碼生成: 基于SQL腳本生成相應的代碼。

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

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

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函數的方式運行

mybatis-plus-generator-ui在1.4.0版本之后,可支持將GeberatorUIServer獨立部署為一個單獨的spring boot項目,通過頁面指定目標項目根目錄的方式為多個項目提供源碼生成服務。這種方式適用于有多個項目庫需要獨立進行開發的模式。實例關鍵代碼如下:

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")
//數據庫schema,POSTGRE_SQL,ORACLE,DB2類型的數據庫需要指定
//.schemaName("myBusiness")
//如果需要修改各類生成文件的默認命名規則,可自定義一個NameConverter實例,覆蓋相應的名稱轉換方法:
.nameConverter(newNameConverter(){
/**
*自定義Service類文件的名稱規則
*/
publicStringserviceNameConvert(StringtableName){
returnthis.entityNameConvert(tableName)+"Service";
}

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

MybatisPlusToolsApplication.run(config);

}

}

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

3、實例運行

運行以上的main方法,在控制臺可以看到以下輸出即為成功部署。

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

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

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

1、Table的查詢和瀏覽

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

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

2、輸出配置

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

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

3、策略配置

將每次生成代碼時可能變動的內容加入到代碼生成選項中,方便調整每次的生成策略,比如:是否覆蓋原文件,生成文件的種類等等:

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

4、SQL配置生成

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

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

5、代碼生成

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

四、自定義擴展

1、相關模板調整

在相關的頁面中,可以進行相應的調整,在對應的btl模板中下載對應文件的具體模板,使用文本工具打開,直接修改源代碼,文中取一種方式示例,其它方式一樣。

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

2、代碼層級的配置

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

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

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

除了Service、Controller、Entity、FieldName都可以實現自定義的擴展。下面是NameConverter類的核心代碼,這里有詳細的定義。

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;

/**
*自定義各類名稱轉換的規則
*/
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()));
}

/**
*自定義表字段名到實體類屬性名的轉換規則
*
*@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在頁面上輸入的輸出文件標識
*@paramtableName關聯的數據表名稱名稱
*@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的功能非常豐富,甚至針對ui都是可以自定義修改的。如果需要定制UI的話,將代碼clone下來后,進入到frontend目錄下,進行相應的擴展開發。

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

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

yarninstall
yarnrunbuild

五、總結

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




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 生成器
    +關注

    關注

    7

    文章

    317

    瀏覽量

    21061
  • MySQL
    +關注

    關注

    1

    文章

    819

    瀏覽量

    26649
  • mybatis
    +關注

    關注

    0

    文章

    61

    瀏覽量

    6724

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

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何生成mybatisplus

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

    懶人C51代碼生成器

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

    AllJoyn C++代碼生成器

    AllJoyn 團隊非常激動地向廣大開發商宣布,一款新工具已經問世——代碼生成器。如果您擁有定義的 AllJoyn 服務接口規范,即可通過運行此代碼
    發表于 09-19 18:11

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

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

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

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

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

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

    代碼生成器的應用

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

    數碼管代碼生成器

    數碼管代碼生成器,迅速生成數碼管的相應代碼
    發表于 04-25 10:54 ?41次下載

    STM32庫函數代碼自動生成器正式版

    STM32庫函數代碼自動生成器正式版 STM32庫函數代碼自動生成器正式版
    發表于 07-25 18:52 ?0次下載

    篇讓你熟練掌握 MyBatis-Plus

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

    python生成器是什么

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

    MyBatis-Plus的使用與測試

    本文主要介紹mybatis-plus這款插件,針對springboot用戶。包括引入,配置,使用,以及擴展等常用的方面做個匯總整理,盡量包含大家常用的場景內容。
    的頭像 發表于 08-22 11:56 ?1343次閱讀

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

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

    MyBatis-Plus為什么不支持聯表

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

    Mybatis-plus批量插入太慢?

    「內置代碼生成器:」 采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼
    的頭像 發表于 08-25 15:24 ?791次閱讀
    <b class='flag-5'>Mybatis-plus</b>批量插入太慢?
    主站蜘蛛池模板: 一级 黄 色 片免费| 手机免费在线视频| 国产婷婷综合在线精品尤物| www.av片| 狠狠涩| 日韩在线视频www色| 69日本xxxxxxxxx96| tom影院亚洲国产| 久草香蕉在线| 久久久免费视频播放| 天天操天天干天天透| 一级片在线播放| 超级碰碰青草久热国产| 狠狠色噜噜狠狠色综合久| 国产亚洲综合一区 柠檬导航| 来吧成人综合网| 你懂得在线播放| 求毛片网站| 色偷偷亚洲男人| 午夜综合| 亚洲国产精品久久婷婷| 在线观看精品视频看看播放| 韩国一区二区三区视频| 久99热| 国产精品免费久久久免费| 亚州一级毛片| 香蕉久久高清国产精品免费| 制服丝袜中文字幕第一页| 色天使视频| 四虎影院com| 四虎影库网址| 老色视频| 中文字幕天天干| 婷婷视频网站| 天天干天天拍天天操| 天天干天天拍天天射 | 扒开双腿猛进湿润18p| 老司机亚洲精品影院在线| 亚洲成人av| 涩久久| 激情六月婷婷|