当前位置:   article > 正文

Mybatis-plus-generator-ui使用_mybatisplus-generator传参给模板使用

mybatisplus-generator传参给模板使用

使用 Mybatis-plus-generator-ui 快速生成代码

Mybatis-plus-generator-ui 是一个基于 Mybatis-plus-generator 的可视化代码生成工具,提供了可视化的 UI 以及各种个性化的配置,同时还可以自定义代码生成模板并为模板传参。

项目地址:https://github.com/davidfantasy/mybatis-plus-generator-ui

使用方法

运行

  1. 引入 maven 依赖

    
    <dependency>
        <groupId>com.github.davidfantasy</groupId>
        <artifactId>mybatis-plus-generator-ui</artifactId>
        <version>2.0.5</version>
        <scope>test</scope>
    </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  2. 在 test 目录下创建启动类

    public class GeberatorUIServer {
    
        public static void main(String[] args) {
            GeneratorConfig config = GeneratorConfig.builder().jdbcUrl("jdbc:mysql://localhost:3306/example")
                    .userName("root")
                    .password("root")
                    .driverClassName("com.mysql.cj.jdbc.Driver")
                    //数据库schema,MSSQL,PGSQL,ORACLE,DB2类型的数据库需要指定
                    .schemaName("myBusiness")
                    //数据库表前缀,生成entity名称时会去掉(v2.0.3新增)
                    .tablePrefix("t_")
                    //如果需要修改entity及其属性的命名规则,以及自定义各类生成文件的命名规则,可自定义一个NameConverter实例,覆盖相应的名称转换方法,详细可查看该接口的说明:                
                    .nameConverter(new NameConverter() {
                        /**
                         * 自定义Service类文件的名称规则,entityName是NameConverter.entityNameConvert处理表名后的返回结果,如有特别的需求可以自定义实现
                         */
                        @Override
                        public String serviceNameConvert(String entityName) {
                            return entityName + "Service";
                        }
    
                        /**
                         * 自定义Controller类文件的名称规则
                         */
                        @Override
                        public String controllerNameConvert(String entityName) {
                            return entityName + "Action";
                        }
                    })
                    //所有生成的java文件的父包名,后续也可单独在界面上设置
                    .basePackage("com.github.davidfantasy.mybatisplustools.example")
                    .port(8068)
                    .build();
            MybatisPlusToolsApplication.run(config);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  3. 运行启动类,并访问 localhost:8068 即可进入代码生成器的管理界面

配置

选择如下界面,可以看到各个文件的配置,点击“文件模板” 链接可以下载生成模板,点击操作按钮可以进行配置。
请添加图片描述

请添加图片描述

请添加图片描述

配置好之后,点击保存,选择 Table查询
请添加图片描述

选择需要生成的数据表,点击代码生成即可。

请添加图片描述
请添加图片描述

注意: 文件生成后的包完成路径为 图中目标项目根目录 + 启动类中的 basePackage 的值 + 图中的功能模块名

更改模板

点击 “输出配置”-> “操作”,点击选取文件,上传改好的模板即可。

所有配置和上传的代码模板都会存到 user.home 目录下的 .mybatis-plus-generator-ui 中, 不同的项目配置文件不会相互影响。
请添加图片描述

More

在团队合作开发的时候,往往会写好 BaseEntity, 每个表也都有固定的公共字段,但是每个人想要生成代码的时候都需要重新修改代码模板,改配置,非常麻烦。

解决办法

  1. 下载所有文件的模板

  2. 在代码生成器的项目中新建 src/main/resources/codetpls 目录, 把刚刚下载好的模板塞到这里,文件生成时,如果没有上传代码模板,会优先从这里找模板。

    请添加图片描述

  3. 把这些模板添加到 git 仓库,就可以共享代码模板了

给代码模板传参

添加如下代码

 GeneratorConfig config=GeneratorConfig.builder()
        .templateVaribleInjecter(new TemplateVaribleInjecter(){
			@Override
			public Map<String, Object> getCustomTemplateVaribles(TableInfo tableInfo){
        		Map<String, Object> params=new HashMap<>();
    			params.put("test", "test");
                Set<String> set = new HashSet<>();
                set.add("1");
                params.put("set", set);
        		return params;
        	}
        })
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在模板代码中使用

<%${cfg.test}%>

<%var set=cfg.set;%>

<%@set.contains("1")%>

该项目使用的是 beetl 模板,具体语法参考官网。

中使用

<%${cfg.test}%>

<%var set=cfg.set;%>

<%@set.contains("1")%>

该项目使用的是 beetl 模板,具体语法参考官网。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/378065
推荐阅读
相关标签
  

闽ICP备14008679号