资讯动态

mybatis-generator-gui-extension 列自定义进阶玩法:忽略字段、类型覆盖与虚拟主键完整教程

发布时间:2026/8/21 15:02:24 来源:尧图企业网站定制
mybatis-generator-gui-extension 列自定义进阶玩法忽略字段、类型覆盖与虚拟主键完整教程【免费下载链接】mybatis-generator-gui-extension图形化MBG内置丰富插件,可生成Service、Controller、View配置简单。 A powerful GUI tool for MyBatisGenerator(MBG)项目地址: https://gitcode.com/gh_mirrors/my/mybatis-generator-gui-extensionmybatis-generator-gui-extension 是一款开箱即用的图形化 MyBatis Generator 增强工具而列自定义正是它最实用的隐藏技能之一。很多新手只会一键生成代码却不知道通过列自定义可以忽略字段、覆盖字段类型甚至设置虚拟主键。本教程将带你从打开窗口到生成代码完整掌握这三项进阶玩法让生成的 Entity 与 Mapper 真正贴合你的业务需求。本文适合已经能跑通基础生成的用户。如果还不熟悉界面可先阅读 wiki 目录下的 Manual.md 入门。一、为什么要学会列自定义默认情况下工具会把数据库表的每一列都生成到实体类中但实际开发中常常遇到这些痛点 表里有created_at、update_time等不需要出现在 Entity 的字段或敏感字段不想落进代码 数据库是TINYINT但你希望实体里是Integer而非Byte️ 数据库列名不好看想生成时直接改掉 Java 属性名 表没有主键导致selectByPrimaryKey等主键方法无法生成以上问题都可以在列自定义编辑窗口中一键解决无需手写 generatorConfig.xml。二、快速上手如何打开列自定义编辑窗口在主窗口底部找到自定义列属性按钮点击即可进入列自定义编辑窗口如下图所示整个窗口以表格形式展示当前表的所有字段包含 6 列信息列名含义能否编辑选中是否生成该字段复选框点击勾选/取消字段名数据库原始列名只读JdbcTypeJDBC 类型如 VARCHAR只读JavaType生成的 Java 类型双击编辑PropertyName实体类属性名双击编辑TypeHandler类型处理器双击编辑 提示窗口顶部有操作说明取消勾选即忽略该列双击单元格即可修改类型与名称修改完成后点击确认保存。三、忽略字段的完整操作步骤忽略字段Ignored Column是列自定义最常用的功能常用于排除日志字段、冗余列等。操作步骤选中目标表点击主窗口底部自定义列属性按钮在弹出窗口中取消目标字段所在行的复选框勾选点击右下角确认保存重新生成代码该字段将不会出现在 Entity、Example 与 Mapper 的任何 SQL 中工具底层会把取消勾选的字段交给 MyBatis Generator 的IgnoredColumn机制处理见 MBGRunner.java因此该字段从实体类到 XML 映射文件都会被完整剔除干净彻底。四、类型覆盖双击即可改 JavaType某些情况下MyBatis Generator 默认的 JDBC→Java 类型映射并不符合你的要求比如TINYINT默认映射为Byte你想用IntegerVARCHAR默认映射为String你想用自定义类型枚举、JSON 等特殊列需要配合 TypeHandler 使用操作步骤打开列自定义窗口双击目标字段的JavaType单元格直接输入完整类名如java.lang.Integer如需自定义属性名双击PropertyName单元格修改即可如需特殊类型转换在TypeHandler列填写 TypeHandler 的全限定类名工具会将这些修改转译为 MyBatis Generator 的ColumnOverride见 MBGRunner.java生成代码时自动生效完全不需要你手写 XML。⚠️ 注意TypeHandler 需要填写类的全限定名且该类必须能被项目 classpath 加载到否则生成时会报错。五、虚拟主键让无主键表也能用主键方法这是本教程的重头戏。当你遇到没有主键的视图表或历史表时MyBatis Generator 默认不会生成selectByPrimaryKey、updateByPrimaryKey等方法非常不方便。虚拟主键Virtual Primary Key就是用业务上唯一的列来冒充主键让上述方法照常生成。操作步骤打开主窗口的实体设置Entity标签页如下图所示找到虚拟主键输入框对应配置项enableVirtualPrimaryKeyPlugin源码见 ProjectConfig.java填入业务唯一列多个列用英文逗号分隔例如ORDER_NO或ID1,ID2点击生成代码即可工具会自动启用 VirtualPrimaryKeyPlugin并把virtualKeyColumns写入生成配置见 MBGRunner.java此后该表就会拥有完整的主键 CRUD 方法。 进阶技巧如果表同时有自增主键还可以在实体设置页的主键输入框中填写自增列名配合获取自增主键 SQL选项生成的 Insert 语句会自动回填自增 ID。六、三个玩法的组合实战场景场景推荐组合日志表只做查询忽略create_time等字段 虚拟主键填业务单号老表字段名不规范忽略旧列 PropertyName 改名 虚拟主键视图表无主键虚拟主键选唯一列 类型覆盖修正 NULL 字段类型七、常见问题FAQQ1忽略的字段还能恢复吗可以。重新打开列自定义窗口把复选框勾上即可恢复。Q2修改 JavaType 后生成的代码里没生效请确认填写的是完整类名如java.lang.Integer并检查是否点击了确认保存。保存后的配置会随工程配置一起持久化下次打开依然有效。Q3虚拟主键填了多个列但报错检查是否使用英文逗号,分隔并且这些列确实存在于表中。Q4这些配置会丢失吗不会。所有列自定义与虚拟主键配置都会随项目配置文件保存下次打开工具可直接复用相关源码可参考 TableColumnMetaData.java。结语掌握忽略字段、类型覆盖、虚拟主键这三板斧mybatis-generator-gui-extension 的列自定义能力就基本吃透了。它最大的价值在于所有操作都在图形界面完成零 XML 手写既适合新手快速上手也能满足老手对特殊表的定制需求。赶紧打开工具用列自定义把那些不听话的表收拾得服服帖帖吧如果觉得本教程有用欢迎收藏转发也欢迎在项目中探索更多高级配置如 Entity 页的 JPA 注解、Mapper 页的插件开关等。【免费下载链接】mybatis-generator-gui-extension图形化MBG内置丰富插件,可生成Service、Controller、View配置简单。 A powerful GUI tool for MyBatisGenerator(MBG)项目地址: https://gitcode.com/gh_mirrors/my/mybatis-generator-gui-extension创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价