源本科技 | 码上会

可视化代码生成器

2026/04/10
1
0

引言

MyBatis-Plus Generator UI 是一款零配置、可视化的代码生成工具,基于 MyBatis-Plus 生态开发。它通过 Web 界面替代传统的代码配置方式,一键生成 Entity、Mapper、Service、Controller 等全套标准化业务代码,同时支持 SQL 解析、动态 SQL 增强等高级特性,极大简化重复代码开发工作。

主要功能

支持数据库表一键解析,提供完整的代码生成、模板配置、SQL 增强能力,核心功能如下:

数据表管理

可直接浏览和查询数据库内的所有数据表,支持单选、多选任意数据表,快速选中后生成对应的全套模板代码。

文件配置管理

内置 6 类标准化代码模板,支持修改模板内容、自定义生成参数、配置数据类型映射;所有配置按项目包名自动保存,一次配置,永久生效

代码生成策略

灵活配置代码生成规则,支持文件覆盖保护、增量生成、指定文件类型生成(仅生成 Entity / 仅生成 Mapper 等),适配不同开发场景。

SQL 代码生成

支持手动输入自定义 SQL 语句,工具自动解析 SQL,一键生成 Mapper 接口方法、DTO 对象、ResultMap 结果映射,无需手动编写复杂映射关系。

动态 SQL 增强

智能识别 SQL 语句中的 MyBatis 动态参数,自动转换为 <if><where> 等标准动态 SQL 标签,无需手动拼接动态条件。

引入依赖

在项目的 pom.xml 文件中添加依赖,该工具仅用于测试环境生成代码,因此 scope 必须设置为 test,避免打包至生产环境。

<dependency>
    <groupId>com.github.davidfantasy</groupId>
    <artifactId>mybatis-plus-generator-ui</artifactId>
    <version>2.0.5</version>
    <scope>test</scope>
</dependency>

补充说明

  1. scope: test:限定依赖仅在测试目录生效,生产环境打包时会自动排除;

  2. 版本 2.0.5 为稳定通用版本,可根据项目需求升级至最新兼容版本。

创建启动类

在项目的 test 源码目录下创建启动类,完成数据库连接、生成规则、端口、包路径等核心配置,这是启动可视化工具的入口。

package com.lusifer.mybatis.test;

import com.github.davidfantasy.mybatisplus.generatorui.GeneratorConfig;
import com.github.davidfantasy.mybatisplus.generatorui.MybatisPlusToolsApplication;
import com.github.davidfantasy.mybatisplus.generatorui.mbp.NameConverter;

public class GeneratorUIServer {

    public static void main(String[] args) {
        // 构建代码生成器核心配置
        GeneratorConfig config = GeneratorConfig.builder()
                // 数据库连接 URL,推荐追加编码、时区等参数
                .jdbcUrl("jdbc:mysql://192.168.153.132:3306/demo?useSSL=false&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8")
                // 数据库登录用户名
                .userName("root")
                // 数据库登录密码
                .password("123456")
                // MySQL 8.0 + 版本驱动类
                .driverClassName("com.mysql.cj.jdbc.Driver")
                // 数据库 schema(仅 MSSQL、PGSQL、ORACLE、DB2 需要配置)
                // .schemaName("myBusiness")
                // 数据库表前缀,生成实体类时自动去除(如 t_user → User)
                // .tablePrefix("t_")
                // 自定义命名规则,可重写方法修改类名生成规范
                .nameConverter(new NameConverter() {
                    /**
                     * 自定义 Service 类命名规则
                     * @param entityName 处理后的实体类名称
                     * @return 最终生成的 Service 类名
                     */
                    @Override
                    public String serviceNameConvert(String entityName) {
                        return entityName + "Service";
                    }

                    /**
                     * 自定义 Controller 类命名规则
                     * @param entityName 处理后的实体类名称
                     * @return 最终生成的 Controller 类名
                     */
                    @Override
                    public String controllerNameConvert(String entityName) {
                        return entityName + "Controller";
                    }
                })
                // 生成所有 Java 文件的根包名
                .basePackage("com.lusifer.mybatis")
                // 可视化界面启动端口
                .port(8068)
                .build();
                
        // 启动代码生成器服务
        MybatisPlusToolsApplication.run(config);
    }
}

启动与访问

直接运行 GeneratorUIServer 启动类,服务启动成功后,在浏览器中访问地址即可进入可视化管理界面: http://localhost: 8068

核心配置

  1. 数据库连接配置 jdbcUrluserNamepassword 为必填项,需与项目数据库信息保持一致;

  2. 表前缀过滤 tablePrefix 可自动去除表前缀,规范实体类命名;

  3. 命名转换器 NameConverter 支持自定义所有生成类的命名规则,适配企业项目规范;

  4. 端口配置 port 用于指定 Web 界面端口,避免与应用服务端口冲突。

使用技巧

  1. 支持多表批量生成,一次性生成多张数据表的全套业务代码;

  2. 界面支持自定义代码模板,可适配团队统一的代码开发规范;

  3. 支持数据库类型与 Java 类型的自定义映射,适配特殊字段场景。

注意事项

  1. 启动类必须放在 test 目录下,依赖 scope 必须为 test

  2. 生成代码前建议开启文件覆盖保护,避免误删已有代码;

  3. 若端口 8068 被占用,可修改为任意未使用的端口号。


总结

  1. MyBatis-Plus Generator UI 是可视化代码生成工具,无需手写配置,大幅提升开发效率;

  2. 依赖仅作用于测试环境,不影响生产环境,使用更安全;

  3. 核心配置包含数据库连接、包路径、命名规则、端口,可灵活适配项目需求;

  4. 支持代码模板自定义、动态 SQL 增强、SQL 自动解析等高级功能,满足复杂开发场景。