MyBatis Generator 2025-10-12

好的,在 IntelliJ IDEA 中配置和使用 MyBatis Generator 是一个非常常见的场景。下面我将为您提供一个从零开始的、详细的配置指南,包含两种主流方法。

方法一:使用 Maven 插件(推荐)

这是最常用和集成度最高的方式,利用 Maven 来管理依赖和运行命令。

第1步:在 pom.xml 中配置插件

在您的 Maven 项目的 pom.xml 文件中的 <build><plugins> 部分添加 mybatis-generator-maven-plugin

<build>
    <plugins>
        <!-- MyBatis Generator Maven 插件 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.2</version> <!-- 请使用最新版本 -->
            <configuration>
                <!-- 配置文件的路径,默认为 src/main/resources/generatorConfig.xml -->
                <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite> <!-- 每次生成是否覆盖原有文件 -->
                <verbose>true</verbose> <!-- 输出详细日志 -->
            </configuration>
            <dependencies>
                <!-- 添加数据库驱动依赖,这里以 MySQL 为例 -->
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.33</version> <!-- 请与您的数据库版本匹配 -->
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

第2步:创建 Generator 配置文件

src/main/resources 目录下创建 generatorConfig.xml 文件。这是 MBG 的核心配置文件。

<?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>
    <!-- 数据库驱动 JAR 包的路径。
         注意:如果在 pom.xml 的插件依赖里已经配置了,这里的 classPathEntry 可以注释掉。
         如果遇到驱动类找不到的问题,可以取消注释并指定绝对路径。
    -->
    <!-- <classPathEntry location="/path/to/your/mysql-connector-java-8.0.33.jar"/> -->

    <context id="MySqlContext" targetRuntime="MyBatis3" defaultModelType="flat">
        <!-- 防止生成的代码包含很多注释 -->
        <commentGenerator>
            <property name="suppressAllComments" value="true"/>
            <property name="suppressDate" value="true"/>
        </commentGenerator>

        <!-- 数据库连接配置 -->
        <jdbcConnection 
            driverClass="com.mysql.cj.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/your_database_name?useSSL=false&serverTimezone=UTC"
            userId="your_username"
            password="your_password">
        </jdbcConnection>

        <!-- Java 模型(实体类)生成配置 -->
        <javaModelGenerator targetPackage="com.example.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>

        <!-- SQL Map 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>

        <!-- 指定要生成代码的表 -->
        <!-- tableName:数据库中的表名 -->
        <!-- domainObjectName:对应的实体类名 -->
        <!-- enableCountByExample, enableUpdateByExample等:是否生成Example相关方法,建议false -->
        <table tableName="user" domainObjectName="User"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               selectByExampleQueryId="false">
            <!-- 可选:指定主键 -->
            <!-- <generatedKey column="id" sqlStatement="MySql" identity="true"/> -->
        </table>
        <!-- 可以配置多个表 -->
        <!-- <table tableName="order" domainObjectName="Order"/> -->

    </context>
</generatorConfiguration>

重要配置说明:

  • jdbcConnection: 请务必修改为您的数据库URL、用户名和密码。
  • javaModelGenerator: targetPackage 是实体类生成的包名。
  • sqlMapGenerator: targetPackage 是XML映射文件在 resources 目录下的存放路径。
  • javaClientGenerator: targetPackage 是Mapper接口生成的包名。
  • table: 配置您需要生成代码的具体表。enable...ByExample 设置为 false 可以避免生成我们通常不使用的复杂查询方法。

第3步:在 IDEA 中运行 Maven 目标

  1. 打开 IDEA 右侧的 Maven 工具栏(如果没看到,请点击 View -> Tool Windows -> Maven)。
  2. 展开您的项目。
  3. 展开 Plugins -> mybatis-generator
  4. 双击 mybatis-generator:generate 目标即可运行。

运行成功后,您会在指定的包路径下看到生成的 Entity、Mapper 接口 和 XML 文件。


方法二:使用独立 Jar 包和 IDEA 启动配置

这种方法不依赖 Maven,适合非 Maven 项目。

第1步:下载 MyBatis Generator 核心 Jar 包

Maven 中央仓库 下载最新版本的 mybatis-generator-core-x.x.x.jar 文件。

第2步:准备文件和目录结构

创建一个独立的目录,例如 mybatis-generator,并组织如下文件:

/mybatis-generator
│   mybatis-generator-core-1.4.2.jar
│   generatorConfig.xml (配置文件,内容同方法一)
│   /lib
│       mysql-connector-java-8.0.33.jar (您的数据库驱动JAR)
│   /src
│       /main
│           /java (生成的Java代码会放在这里)
│           /resources (生成的XML文件会放在这里)

您需要修改 generatorConfig.xml 中的路径,使其指向这个独立目录。

<!-- 在 generatorConfig.xml 中,需要指定驱动JAR的绝对路径或相对路径 -->
<classPathEntry location="lib/mysql-connector-java-8.0.33.jar"/>

<!-- 同时修改 targetProject,指向我们自定义的 src 目录 -->
<javaModelGenerator targetPackage="com.example.entity" targetProject="src"/>
<sqlMapGenerator targetPackage="mapper" targetProject="src"/>
<javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" targetProject="src"/>

第3步:在 IDEA 中创建运行配置

  1. 点击 IDEA 顶部菜单 Run -> Edit Configurations...
  2. 点击 + 号,选择 JAR Application
  3. 进行如下配置:
    • Path to JAR: 选择您下载的 mybatis-generator-core-1.4.2.jar
    • Program arguments: -configfile generatorConfig.xml -overwrite
      • -configfile: 指定配置文件路径。
      • -overwrite: 覆盖已存在的文件。
    • Working directory: 选择您创建的 mybatis-generator 目录。
  4. 点击 OK 保存配置。

现在,您可以从 IDEA 的运行配置下拉菜单中选择这个配置并点击运行按钮来执行生成器。

总结与最佳实践

特性 方法一 (Maven 插件) 方法二 (独立 Jar)
依赖管理 由 Maven 管理,简单 需手动下载和管理 Jar 包
集成度 与项目高度集成,一键运行 需要单独配置运行参数
灵活性 配置在 pom.xml 中,标准统一 独立于项目,配置更自由
推荐度 ★★★★★ (强烈推荐) ★★★☆☆ (适用于非Maven项目)

最佳实践建议:

  1. 版本管理:在 pom.xml 中固定 MyBatis Generator 和数据库驱动的版本。
  2. 配置文件:将数据库连接信息(如密码)提取到外部的 .properties 文件中,然后在 generatorConfig.xml 中通过 <properties resource="db.properties"/> 引入,以提高安全性。
  3. 生成策略:仔细配置 <table> 标签的属性,只生成你需要的代码,避免代码冗余。
  4. 自定义:MBG 支持插件(Plugin)和类型处理器(Type Handler),你可以编写自定义逻辑来满足特殊需求,例如生成 Swagger 注解、Lombok 注解等。

希望这个详细的指南能帮助您在 IDEA 中顺利配置和使用 MyBatis Generator!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容