赞
踩
Mybatis-plus-generator-ui 是一个基于 Mybatis-plus-generator 的可视化代码生成工具,提供了可视化的 UI 以及各种个性化的配置,同时还可以自定义代码生成模板并为模板传参。
项目地址:https://github.com/davidfantasy/mybatis-plus-generator-ui
引入 maven 依赖
<dependency>
<groupId>com.github.davidfantasy</groupId>
<artifactId>mybatis-plus-generator-ui</artifactId>
<version>2.0.5</version>
<scope>test</scope>
</dependency>
在 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); } }
运行启动类,并访问 localhost:8068 即可进入代码生成器的管理界面
选择如下界面,可以看到各个文件的配置,点击“文件模板” 链接可以下载生成模板,点击操作按钮可以进行配置。
配置好之后,点击保存,选择 Table查询
选择需要生成的数据表,点击代码生成即可。
注意: 文件生成后的包完成路径为 图中目标项目根目录 + 启动类中的 basePackage 的值 + 图中的功能模块名
点击 “输出配置”-> “操作”,点击选取文件,上传改好的模板即可。
所有配置和上传的代码模板都会存到 user.home 目录下的 .mybatis-plus-generator-ui 中, 不同的项目配置文件不会相互影响。
在团队合作开发的时候,往往会写好 BaseEntity
, 每个表也都有固定的公共字段,但是每个人想要生成代码的时候都需要重新修改代码模板,改配置,非常麻烦。
下载所有文件的模板
在代码生成器的项目中新建 src/main/resources/codetpls 目录, 把刚刚下载好的模板塞到这里,文件生成时,如果没有上传代码模板,会优先从这里找模板。
把这些模板添加到 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;
}
})
在模板代码中使用
<%${cfg.test}%>
或
<%var set=cfg.set;%>
<%@set.contains("1")%>
该项目使用的是 beetl 模板,具体语法参考官网。
中使用
<%${cfg.test}%>
或
<%var set=cfg.set;%>
<%@set.contains("1")%>
该项目使用的是 beetl 模板,具体语法参考官网。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。