首页
学习
活动
专区
圈层
工具
发布

MyBatis-Plus 开发提速神器:mybatis-plus-generator-ui

老实说,用过 MyBatis 的人,大概都经历过“复制粘贴 mapper.xml 模板”的痛苦吧?每次新建个表,mapper、entity、service 一顿手敲,累得像搬砖工。后来出了 MyBatis-Plus,算是解放了一半的手,但那种命令行生成代码的方式吧,说实话,第一次配置的时候也挺懵的。直到遇到了mybatis-plus-generator-ui,我才明白什么叫“点一点就出活”。

一、为什么需要这个 UI?

先说点实话。 MyBatis-Plus 自带的代码生成器确实强大,比如FastAutoGenerator一套配置下来,表结构、字段注释、文件路径统统能生成,但问题是——你得写一堆配置,还得反复调路径。搞快了还容易覆盖旧代码。

而这个mybatis-plus-generator-ui工具,直接提供了一个 Web 界面,打开浏览器,输入数据库连接信息、包路径、表名……点一下“生成”,项目结构就齐活了。零命令行、零配置文件修改,新人都能一看就懂。

二、启动也太简单了吧

它本身其实就是一个基于 Spring Boot 的小工具,直接引入依赖就能跑。 最常见的方式是单独建一个启动类,比如:

import com.baomidou.mybatisplus.generator.config.DataSourceConfig;

import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import com.github.xiaoymin.knife4j.core.util.CommonUtils;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication

public class CodeGeneratorApp {

  public static void main(String[] args) {

      SpringApplication.run(CodeGeneratorApp.class, args);

  }

}

运行完之后,访问http://localhost:8888/code,你就能看到熟悉的 Web 界面,界面上左边输入数据库连接信息,右边配置包名、作者、输出路径等,一键搞定。

三、功能细节比你想象的多

很多人第一次看到以为只是个“界面化的代码生成器”,但其实它比官方原版多了不少实用细节:

支持多数据源配置不用改配置文件,你可以直接在界面里切换不同数据库连接,像:

jdbc:mysql://localhost:3306/demo

jdbc:postgresql://localhost:5432/app_db

改完直接点生成,不需要重启。

模板自由修改模板文件是基于 Freemarker 的,你要改 entity、controller 的命名规范、去掉多余注释都行,改完重新加载模板就能用了。

可选生成结构不想生成 Controller?没问题,取消勾选;想要加 Swagger 注解?也有选项,一键启用。

智能命名规则表名带下划线也不用怕,比如user_info会自动生成UserInfo类,还能根据前缀过滤,比如t_开头的表可以自动去掉。

四、一个真实场景

举个我自己项目里的例子。 我们当时要接入一个老旧系统,数据库表足足 150 多张,字段命名还不统一。光是写实体类就得折腾几天。 我用了这个工具后,连上数据库,选中目标表,一次性勾选生成 Controller + Service + Mapper + XML,花了不到三分钟。

生成的代码路径清晰、注释齐全,比如一个简单的用户表生成后,代码就像这样:

@TableName("user_info")

public class UserInfo {

  @TableId(type = IdType.AUTO)

  private Long id;

  @TableField("user_name")

  private String userName;

  @TableField("email")

  private String email;

  @TableField("create_time")

  private LocalDateTime createTime;

}

然后对应的UserInfoMapper.java也会自动生成:

public interface UserInfoMapper extends BaseMapper<UserInfo> {

}

没有废话,拿来就能用。 你只要在 Service 里写:

@Service

public class UserInfoService extends ServiceImpl<UserInfoMapper, UserInfo> {

}

然后在 Controller 里:

@RestController

@RequestMapping("/user")

public class UserController {

  @Autowired

  private UserInfoService userInfoService;

  @GetMapping("/list")

  public List<UserInfo> list() {

      return userInfoService.list();

  }

}

这就能跑通一个完整的增删改查接口。整个过程几乎没写几行逻辑代码。

五、一些贴心小功能

除了生成速度快,它还有一些我特别喜欢的小功能,比如:

生成日志可视化每次生成代码,它会在页面实时显示生成进度,比如正在生成哪个包、哪个文件,出了错也能直接看到错误堆栈。

路径记忆它会缓存上一次的输入,比如数据库连接和包名,下次打开不用再填。

支持导出 Zip 包如果不想直接写进项目,也可以导出 zip 包,下载后手动解压。

这些小细节,对一个经常得给多个项目写 CRUD 的开发者来说,真的能省下很多无意义的重复劳动。

六、推荐的使用姿势

我自己的建议是,不要把这个 UI 工具长期挂在生产项目里跑,毕竟它带有生成逻辑,有安全风险。 更好的方式是单独建一个本地工具项目,用完就关。

如果团队成员多,也可以放在内网的工具平台里统一使用,比如一个 DevOps 工具集成平台上开个端口,大家都能用,还能管理模板。

其实说到底,mybatis-plus-generator-ui并不是让你不写代码,而是帮你从那些“毫无意义的重复劳动”中解放出来。 它生成的代码干净、规范,还能自定义模板风格,是真正能提升生产效率的“小而美”工具。

要我说,这种能让项目“从数据库到接口三分钟跑起来”的东西,真不该被低估。 尤其在初期快速搭建项目骨架的时候,它就是一把利器。

有空可以试试——点开浏览器,连个数据库,三分钟后你就会有一种“再也不想手写 Mapper 了”的感觉。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OJ_s2P8JDhHUXrQJfuUOnPWw0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。
领券