当前位置: 首页 > news >正文

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 相关依赖:

<!-- 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 version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//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. 生成指定表

    <table tableName="user" domainObjectName="User"/>
    <table tableName="order" domainObjectName="Order"/>
    
  2. 忽略列生成

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

    <table tableName="user"><columnOverride column="user_name" property="username"/>
    </table>
    

六、常见问题与解决方案

6.1 中文乱码问题

generatorConfig.xml 中添加编码配置:

<javaModelGenerator targetPackage="com.example.entity"targetProject="src/main/java"><property name="javaFileEncoding" value="UTF-8"/>
</javaModelGenerator>

6.2 生成文件覆盖问题

确保 pom.xml 的插件配置中添加了 <overwrite>true</overwrite>,允许覆盖旧文件:

<configuration><configurationFile>src/main/resources/generatorConfig.xml</configurationFile><overwrite>true</overwrite> <!-- 关键配置 -->
</configuration>

6.3 MySQL 时区问题

在数据库连接 URL 中添加时区参数:

<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. 遇到问题时,优先检查控制台日志和配置文件中的数据库连接、表名等关键信息。
http://www.dtcms.com/a/285512.html

相关文章:

  • PostgreSQL技术大讲堂 - 第97讲:PG数据库编码和区域(locale)答疑解惑
  • SQLite / LiteDB 单文件数据库为何“清空表后仍占几 GB”?——原理解析与空间回收实战
  • 基于单片机智能浇花控制系统设计
  • 短视频矩阵系统:选择与开发的全面指南
  • Instagram千号矩阵:亚矩阵云手机破解设备指纹检测的终极方案
  • Hadoop与云原生集成:弹性扩缩容与OSS存储分离架构深度解析
  • ThreadLocal 在 Spring 与数据库交互中的应用笔记
  • 车载监控录像系统:智能安全驾驶的守护者
  • SGLang 推理框架核心组件解析:请求、内存与缓存的协同工作
  • Android音视频探索之旅 | Webrtc 1对1音视频通话核心流程分析
  • Go语言实战案例-斐波那契数列生成器
  • 分表聚合助手类
  • UniApp TabBar 用户头像方案:绕过原生限制的实践
  • 依托CCLinkIE转ModbusTCP网关的转换达成西门子PLC连接配置案例
  • 涉及海量数据的查询SQL建议使用“数据库函数”封装并调用
  • Rust实战:高效对接Postman API
  • 【Nginx】nginx+lua+redis实现限流
  • 【Lua】闭包可能会导致的变量问题
  • 去中心化交易所(DEX)深度解析:解码行业头部项目
  • 双向广搜算法详解
  • 【现有资料整理】灵枢 - 用于医学领域的 SOTA 多模态大语言模型
  • 对Yii2中开启`authenticator`后出现的跨域问题-修复
  • .QOI: Lossless Image Compression in O(n) Time
  • 变量命名规则
  • git--gitlab
  • 性能远超Spring Cloud Gateway!Apache ShenYu如何重新定义API网关!
  • 无标记点动捕:如何突破传统娱乐边界,打造沉浸式交互体验
  • 高速公路自动化安全监测主要内容
  • Elasticsearch+Logstash+Filebeat+Kibana部署(单机部署)
  • 在 Jenkins 中使用 SSH 部署密钥