{"id":13607893,"url":"https://github.com/davidfantasy/mybatis-plus-generator-ui","last_synced_at":"2025-05-15T02:07:20.493Z","repository":{"id":37361634,"uuid":"261519816","full_name":"davidfantasy/mybatis-plus-generator-ui","owner":"davidfantasy","description":"对mybatis-plus-generator进行封装，通过Web UI快速生成兼容Spring boot，mybatis-plus框架的各类业务代码","archived":false,"fork":false,"pushed_at":"2025-05-08T02:07:05.000Z","size":2411,"stargazers_count":1940,"open_issues_count":41,"forks_count":480,"subscribers_count":30,"default_branch":"master","last_synced_at":"2025-05-08T03:18:58.926Z","etag":null,"topics":["mybaits-generator","mybatis","mybatis-plus","mybatis-plus-generator"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/davidfantasy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-05T16:06:08.000Z","updated_at":"2025-05-08T02:07:08.000Z","dependencies_parsed_at":"2024-04-16T07:47:56.329Z","dependency_job_id":"8fad51d3-3a0a-422c-aaf9-282d5de7cd74","html_url":"https://github.com/davidfantasy/mybatis-plus-generator-ui","commit_stats":{"total_commits":136,"total_committers":6,"mean_commits":"22.666666666666668","dds":0.05147058823529416,"last_synced_commit":"d7ba256feb55a12921131b46c5558dfc1846f523"},"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfantasy%2Fmybatis-plus-generator-ui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfantasy%2Fmybatis-plus-generator-ui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfantasy%2Fmybatis-plus-generator-ui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidfantasy%2Fmybatis-plus-generator-ui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidfantasy","download_url":"https://codeload.github.com/davidfantasy/mybatis-plus-generator-ui/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254259383,"owners_count":22040820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mybaits-generator","mybatis","mybatis-plus","mybatis-plus-generator"],"created_at":"2024-08-01T19:01:22.572Z","updated_at":"2025-05-15T02:07:20.487Z","avatar_url":"https://github.com/davidfantasy.png","language":"Java","funding_links":[],"categories":["Projects Using MyBatis-Plus"],"sub_categories":["Tutorials"],"readme":"## 注意：\n该项目目前已经进入维护期，不会再增加新的特性。推荐使用 [resource2code](https://github.com/davidfantasy/resource2code) 项目。该项目通过 AI 模型辅助生成代码，并支持自定义各类代码生成规则，灵活引用数据库等外部资源，帮助开发者高效完成代码构建任务。\n\n## mybatis-plus-generator-ui\n\n提供交互式的Web UI用于生成兼容mybatis-plus框架的相关功能代码，包括Entity,Mapper,Mapper.xml,Service,Controller等\n，可以自定义模板以及各类输出参数，也可通过SQL查询语句直接生成代码。\n\n## 使用方法\n\n1. 引入maven的相关依赖，注意scope只需要写test就可以了\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.github.davidfantasy\u003c/groupId\u003e\n    \u003cartifactId\u003emybatis-plus-generator-ui\u003c/artifactId\u003e\n    \u003cversion\u003e2.0.5\u003c/version\u003e\n    \u003cscope\u003etest\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n\n2. 在项目的test目录新建一个启动类，代码示例如下：\n\n```java\npublic class GeberatorUIServer {\n\n    public static void main(String[] args) {\n        GeneratorConfig config = GeneratorConfig.builder().jdbcUrl(\"jdbc:mysql://192.168.1.211:3306/example\")\n                .userName(\"root\")\n                .password(\"root\")\n                .driverClassName(\"com.mysql.cj.jdbc.Driver\")\n                //数据库schema，MSSQL,PGSQL,ORACLE,DB2类型的数据库需要指定\n                .schemaName(\"myBusiness\")\n                //数据库表前缀，生成entity名称时会去掉(v2.0.3新增)\n                .tablePrefix(\"t_\")\n                //如果需要修改entity及其属性的命名规则，以及自定义各类生成文件的命名规则，可自定义一个NameConverter实例，覆盖相应的名称转换方法，详细可查看该接口的说明：                \n                .nameConverter(new NameConverter() {\n                    /**\n                     * 自定义Service类文件的名称规则，entityName是NameConverter.entityNameConvert处理表名后的返回结果，如有特别的需求可以自定义实现\n                     */\n                    @Override\n                    public String serviceNameConvert(String entityName) {\n                        return entityName + \"Service\";\n                    }\n\n                    /**\n                     * 自定义Controller类文件的名称规则\n                     */\n                    @Override\n                    public String controllerNameConvert(String entityName) {\n                        return entityName + \"Action\";\n                    }\n                })\n                //所有生成的java文件的父包名，后续也可单独在界面上设置\n                .basePackage(\"com.github.davidfantasy.mybatisplustools.example\")\n                .port(8068)\n                .build();\n        MybatisPlusToolsApplication.run(config);\n    }\n\n}\n```\n3. 运行该启动类，启动一个Generator Server。然后访问[http://localhost:8068](http://localhost:8068/)（端口是可配置的）即可进入到管理界面。\n\n**GeneratorConfig**还包含一些基本的配置参数以及各个可扩展的接口，比如自定义模板参数，数据库日期类型与Java类型的映射关系等，具体的说明可查看源码注释。\n\n**重要提示**：如果需要自定义entity,servie这些生成文件的类名，只需要自己实现NameConverter中对应的方法即可，可参考com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter中默认方法的实现！！\n\n#### 重要更新\n\n**1.4.0** 版本之后，可支持将GeberatorUIServer独立部署为一个单独的spring boot项目，通过页面指定目标项目根目录的方式为多个项目提供源码生成服务。\n\n**2.0.0** 版本已经支持最新的mybatis-plus 3.5.X，才用重构后新的MBP作为代码生成引擎。\n\n## 主要功能\n\n1. **数据表的查询和浏览**：可以直接浏览和查询配置的数据源的数据表信息，可选择一个或多个生成模板代码：\n\n![数据表查询](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/table-list.png)\n\n2. **输出文件的配置**\n   ：内置Entity,Mapper,Service,Controller等6种类型代码的模板配置，可以上传模板进行替换，并修改各类参数，配置参数已经按照影响的文件类型重新进行了分类，并加入了部分文本说明；也可以自行添加其它类型的自定义输出文件。所有的配置项都会按照项目包名进行保存，只需一次性设置就可以了。\n\n![输出文件类型配置](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/output-config.png)\n\n![文件输出选项配置](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/strategy.png)\n\n3. **代码生成选项**：将每次生成代码时可能变动的内容加入到代码生成选项中，方便调整每次的生成策略，比如：是否覆盖原文件，生成文件的种类等等：\n\n![代码生成选项](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/generator-options.png)\n\n4. **SQL结果集自动生成代码**：通过输入查询SQL，可自动在Mapper（Xml及Java）中生成对应的查询方法，DTO对象和ResultMap（结果集映射配置）\n\n![SQL编辑](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/SQL-edit.png)\n\n![SQL代码生成选项](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/SQL-generator-options.png)\n\n5. **动态SQL增强**：自动识别含有mybatis动态参数的where条件，转换为mybatis的动态SQL条件\n\n![动态SQL增强](https://gitee.com/davidfantasy/mybatis-plus-generator-ui/raw/master/imgs/dynamicsql.png)\n\n## 常见问题\n\n**Q:下载源码中怎么直接运行？**\n\n**不建议直接下载源码运行**\n，该项目是设计为直接嵌入到对应的业务项目中使用，可以自动识别项目路径等环境变量。如需采用源码运行，需要另行编译src\\frontend中的静态资源（源码中不包含已编译的页面），在src\\frontend文件夹中执行：\n\n~~~shell\nyarn install\nyarn run build\n~~~\n\n然后修改src\\test\\java\\TestApplication中数据库的相关配置，并运行。\n\n**Q:支持哪些类型的数据库？**\n\n支持几乎所有主流的数据库，具体可参考mybatis-plus-generator框架的文档。需要自行引入数据库的driver包，并在\nGeneratorConfig中指定driverClassName。\n\n**Q:怎么自定义模板参数？**\n\n在GeneratorConfig中自定义TemplateVaribleInjecter，返回需要在模板中使用的参数，例如：\n\n```java\n GeneratorConfig config=GeneratorConfig.builder()\n        .templateVaribleInjecter(new TemplateVaribleInjecter(){\n@Override\npublic Map\u003cString, Object\u003e getCustomTemplateVaribles(TableInfo tableInfo){\n        Map\u003cString, Object\u003e params=new HashMap\u003c\u003e();\n        return params;\n        }\n        })\n```\n\n**Q:保存的配置是存储到什么地方的？**\n\n所有的用户保存的配置是按照basePackage分组保存到user.home目录的.mybatis-plus-generator-ui中的，不同项目的配置不会互相影响。\n\n**Q:启动报错问题排查**\n\n大部分的启动问题都是由于依赖冲突导致的，因为mybatis-plus-generator-ui也依赖于springboot和mybatis-plus，请先检查依赖包版本是否相差过大；1.X的版本仅支持最高mp的3.4.X版本，在高版本的springboot(大于2.4)上启动也会有问题，2.0.0版本已经解决了相关的兼容性问题；\n\n欢迎大家关注我的公众号（飞空之羽的技术手札），我会在上面定期分享一些关于技术的经验和感悟~\n\n![二维码](https://github.com/davidfantasy/mybatis-plus-generator-ui/blob/master/imgs/wechat.jpg)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfantasy%2Fmybatis-plus-generator-ui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidfantasy%2Fmybatis-plus-generator-ui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidfantasy%2Fmybatis-plus-generator-ui/lists"}