IDEA 2024.1 配置 MyBatis Generator 详细教程

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 面板即可快速运行:

  1. 在 IDEA 右侧打开 Maven 面板(若未显示,可通过 View -> Tool Windows -> Maven 调出);
  2. 展开当前项目的 Plugins -> mybatis-generator
  3. 双击 mybatis-generator:generate 即可执行代码生成:

优势

  • 无需记忆主类和参数,双击即可运行;
  • 配置了 <overwrite>true</overwrite> 时,可直接覆盖旧文件,无需手动删除。

四、执行代码生成

4.1 运行 MBG 任务

  1. 双击 mybatis-generator:generate 后,查看控制台输出,确认生成过程是否成功:

    复制代码
    [INFO] Generating Java Model Objects...
    [INFO] Generating SQL Map XML Files...
    [INFO] Generating Java Client Objects...
  2. 生成的文件将出现在配置指定的目录下:

    • 实体类: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 高级配置选项

  1. 生成指定表

    xml 复制代码
    <table tableName="user" domainObjectName="User"/>
    <table tableName="order" domainObjectName="Order"/>
  2. 忽略列生成

    xml 复制代码
    <table tableName="user">
        <ignoreColumn column="create_time"/>
    </table>
  3. 自定义列与属性映射

    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>

七、总结

  1. 通过 Maven 插件运行 MyBatis Generator 是最简便的方式,双击 mybatis-generator:generate 即可完成代码生成;
  2. 核心配置文件 generatorConfig.xml 需正确指定数据库连接和生成路径;
  3. 遇到问题时,优先检查控制台日志和配置文件中的数据库连接、表名等关键信息。
相关推荐
白日依山尽yy31 分钟前
SpringBoot项目部署至云服务器
java·spring boot·后端
PP东34 分钟前
Mybatis学习之简介(一)
学习·oracle·mybatis
典孝赢麻崩乐急43 分钟前
Java学习--------消息队列的重复消费、消失与顺序性的深度解析
java·开发语言·学习
汤姆yu1 小时前
基于springboot的考研互助小程序
java·spring boot·后端·考研互助
MoFe12 小时前
【.net core】支持通过属性名称索引的泛型包装类
java·开发语言·.netcore
没有bug.的程序员2 小时前
JAVA面试宝典 -《缓存架构:穿透 / 雪崩 / 击穿解决方案》
java·缓存·面试
Kiri霧2 小时前
Kotlin比较接口
android·java·前端·微信·kotlin
阿华的代码王国3 小时前
【Android】EditText使用和监听
android·xml·java
菜还不练就废了4 小时前
7.19 Java基础 | 异常
java·开发语言
Xxtaoaooo4 小时前
手撕Spring底层系列之:注解驱动的魔力与实现内幕
java·开发语言·后端开发·spring框架·原理解析