IDEA 2024.1 配置 MyBatis Generator 详细教程
MyBatis Generator (MBG) 是 MyBatis 官方提供的代码生成工具,可以根据数据库表自动生成实体类、Mapper 接口和 XML 映射文件,极大提升开发效率。本文将详细介绍如何在 IDEA 2024.1 中配置和使用 MBG。
一、环境准备
1.1 添加依赖
在项目的 pom.xml
中添加 MBG 相关依赖:
xml
<!-- MyBatis Generator 核心依赖 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.1</version>
</dependency>
<!-- 数据库驱动(根据实际使用的数据库选择) -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<!-- 在 build 节点下添加插件配置,用于快速运行 -->
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.1</version>
<configuration>
<!-- 指定配置文件路径 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<!-- 允许覆盖已生成的文件 -->
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
二、创建配置文件
2.1 新建 generatorConfig.xml
在 src/main/resources
目录下创建 generatorConfig.xml
文件,配置 MBG 的基本参数:
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动路径(可选,若已通过 Maven 引入驱动则无需指定) -->
<!-- <classPathEntry location="D:/maven/repository/mysql/mysql-connector-java/8.0.33/mysql-connector-java-8.0.33.jar"/> -->
<context id="DB2Tables" targetRuntime="MyBatis3">
<!-- 自动识别数据库关键字,默认 false -->
<property name="autoDelimitKeywords" value="true"/>
<!-- 生成的 Java 文件的编码 -->
<property name="javaFileEncoding" value="UTF-8"/>
<!-- 注释生成器配置 -->
<commentGenerator>
<property name="suppressDate" value="true"/> <!-- 不生成日期 -->
<property name="suppressAllComments" value="true"/> <!-- 不生成注释 -->
</commentGenerator>
<!-- 数据库连接配置 -->
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/your_database"
userId="root"
password="your_password">
<!-- 针对 MySQL 的时区问题配置 -->
<property name="nullCatalogMeansCurrent" value="true"/>
</jdbcConnection>
<!-- Java 类型处理器 -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成实体类的配置 -->
<javaModelGenerator targetPackage="com.example.entity"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成 XML 映射文件的配置 -->
<sqlMapGenerator targetPackage="mapper"
targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成 Mapper 接口的配置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="com.example.mapper"
targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 指定要生成代码的表(可配置多个 table 节点) -->
<table tableName="user" domainObjectName="User" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false">
<!-- 列映射配置(可选) -->
<!-- <columnOverride column="id" property="id" javaType="java.lang.Integer"/> -->
</table>
<!-- 可添加更多表配置... -->
</context>
</generatorConfiguration>
三、配置运行任务(极简方式)
3.1 直接通过 Maven 插件运行(推荐)
无需手动配置 Run Configuration,通过 IDEA 的 Maven 面板即可快速运行:
- 在 IDEA 右侧打开
Maven
面板(若未显示,可通过View -> Tool Windows -> Maven
调出); - 展开当前项目的
Plugins -> mybatis-generator
; - 双击
mybatis-generator:generate
即可执行代码生成:
优势:
- 无需记忆主类和参数,双击即可运行;
- 配置了
<overwrite>true</overwrite>
时,可直接覆盖旧文件,无需手动删除。
四、执行代码生成
4.1 运行 MBG 任务
-
双击
mybatis-generator:generate
后,查看控制台输出,确认生成过程是否成功:[INFO] Generating Java Model Objects... [INFO] Generating SQL Map XML Files... [INFO] Generating Java Client Objects...
-
生成的文件将出现在配置指定的目录下:
- 实体类:
src/main/java/com/example/entity
- Mapper 接口:
src/main/java/com/example/mapper
- XML 映射文件:
src/main/resources/mapper
- 实体类:
五、配置参数详解
5.1 常用配置参数
参数 | 说明 | 示例值 |
---|---|---|
targetRuntime |
目标运行时环境 | MyBatis3 (默认) |
targetPackage |
生成文件的包名 | com.example.entity |
targetProject |
生成文件的目录 | src/main/java |
tableName |
数据库表名 | user |
domainObjectName |
生成的实体类名 | User |
enableSubPackages |
是否使用子包 | true |
5.2 高级配置选项
-
生成指定表:
xml<table tableName="user" domainObjectName="User"/> <table tableName="order" domainObjectName="Order"/>
-
忽略列生成:
xml<table tableName="user"> <ignoreColumn column="create_time"/> </table>
-
自定义列与属性映射:
xml<table tableName="user"> <columnOverride column="user_name" property="username"/> </table>
六、常见问题与解决方案
6.1 中文乱码问题
在 generatorConfig.xml
中添加编码配置:
xml
<javaModelGenerator targetPackage="com.example.entity"
targetProject="src/main/java">
<property name="javaFileEncoding" value="UTF-8"/>
</javaModelGenerator>
6.2 生成文件覆盖问题
确保 pom.xml
的插件配置中添加了 <overwrite>true</overwrite>
,允许覆盖旧文件:
xml
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite> <!-- 关键配置 -->
</configuration>
6.3 MySQL 时区问题
在数据库连接 URL 中添加时区参数:
xml
<jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC">
</jdbcConnection>
七、总结
- 通过 Maven 插件运行 MyBatis Generator 是最简便的方式,双击
mybatis-generator:generate
即可完成代码生成; - 核心配置文件
generatorConfig.xml
需正确指定数据库连接和生成路径; - 遇到问题时,优先检查控制台日志和配置文件中的数据库连接、表名等关键信息。