mybatis 逆向工程(mbg)可根据数据库表自动生成 entity、mapper 接口和 xml 映射文件,核心是配置 generatorconfig.xml 并通过 maven 插件执行 mvn mybatis-generator:generate 命令。

MyBatis 逆向工程(MyBatis Generator,简称 MBG)能根据数据库表结构自动生成 Entity、Mapper 接口和 XML 映射文件,大幅减少样板代码编写。核心是配置好 generatorConfig.xml,再通过命令行、Maven 插件或 IDE 插件触发生成。
准备数据库连接与依赖
确保项目已引入 MyBatis Generator 的 Maven 依赖,并配置好数据库驱动:
- 在
pom.xml中添加mybatis-generator-core依赖(注意版本兼容 MyBatis 3.4+) - 确认 MySQL/Oracle/PostgreSQL 等对应 JDBC 驱动已存在 classpath(如
mysql-connector-java) - 数据库需可连通,表名、字段命名规范(MBG 对下划线转驼峰有默认规则)
编写 generatorConfig.xml 配置文件
这是 MBG 的核心配置,通常放在 src/main/resources 下。关键部分包括:
- jdbcConnection:填入数据库 URL、用户名、密码
- javaModelGenerator:指定 Entity 类包路径、是否启用 Lombok、是否使用 `@Data` 等
-
sqlMapGenerator:设置 XML 文件输出目录(如
mapper包) -
javaClientGenerator:选择 Mapper 类类型(
ANNOTATEDMAPPER/XMLMAPPER/MIXEDMAPPER) -
table:可逐个指定表名,支持通配符(如
tableName="t_user"或tableName="t_%", domainObjectName="User")
建议开启 enableSubPackages="true" 和 useActualColumnNames="false" 以更好支持驼峰映射。
运行生成命令(推荐 Maven 方式)
在 pom.xml 中配置 mybatis-generator-maven-plugin 插件后,执行:
-
mvn mybatis-generator:generate(默认读取src/main/resources/generatorConfig.xml) - 如配置文件不在默认路径,可用参数指定:
mvn mybatis-generator:generate -Dmybatis.generator.configurationFile=src/main/resources/myGen.xml - 首次运行前建议先
mvn clean,避免旧文件残留
成功后会在指定目录生成 Java 实体类、Mapper 接口和 XML 文件(若选 XML 方式)。
常见定制与优化技巧
MBG 默认生成较基础,可通过以下方式增强实用性:
- 用
<columnoverride></columnoverride>手动指定某字段的 Java 类型(如数据库tinyint(1)映射为Boolean) - 在
javaModelGenerator中添加<property name="lombok" value="true"></property>(需搭配 Lombok 支持) - 使用
plugin扩展:如添加org.mybatis.generator.plugins.EqualsHashCodePlugin自动生成 equals/hashCode - 结合
tk.mybatis.mapper或MyBatis-Plus时,可自定义模板或改用其配套代码生成器
不复杂但容易忽略的是:每次修改表结构后,应重新运行 MBG 并检查是否覆盖了手动添加的逻辑(建议将自定义方法写在独立 Service 层,而非覆盖生成的 Mapper)。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











