「后端」MyBatis Generator使用方法介绍

背景:

在日常Java项目开发过程中,需要对接数据库写入对应的数据,需要写一系列实体类(Entity)、Mapper 接口、Mapper XML 文件等,现在可以在 IntelliJ IDEA 中使用 MyBatis Generator(简称 MBG)可以极大地提升开发效率,它能根据数据库表自动生成对应的实体类(Entity)、Mapper 接口、Mapper XML 文件。

一、添加依赖

pom.xml中添加Mybatis Generator的依赖和插件

xml 复制代码
<build>
    <plugins>
<!-- MyBatis Generator 插件 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.2</version> 
            <configuration>
                  <configurationFile>${basedir}/src/main/resources/generatorConfig.xml</configurationFile>
                  <overwrite>true</overwrite>
                  <verbose>true</verbose>
            </configuration>
         </plugin>
     </plugins>
</build>

其中configurationFile 配置填写generatorConfig.xml的地址,并且generatorConfig.xml文件通常添加在resource资源文件夹下,但不要放在Mapper文件夹下方,容易导致SpringBoot扫描到后启动失败。

二、创建配置文件generatorConfig.xml

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>
    <!-- 数据库驱动jar包的位置 -->
    <classPathEntry location="/Users/liangjiangbin/Tools/jar/mysql/mysql-connector-java/8.0.28/mysql-connector-java-8.0.28.jar"/>
    <!-- 数据库连接信息 -->
    <context id="default" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://mysqlURL:3306/your_database"
                        userId="your_username"
                        password="your_password"/>

        <!-- Java 实体类生成配置 -->
        <javaModelGenerator targetPackage="com.halvie.ims.infra.db.entity" targetProject="src/main/java"/>

        <!-- Mapper XML 文件生成配置 -->
        <sqlMapGenerator targetPackage="mapper.center" targetProject="src/main/resources"/>

        <!-- Mapper 接口生成配置 -->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.halvie.ims.infra.db.mapper"
                             targetProject="src/main/java"/>

        <!-- 指定要生成的表 -->
        <table tableName="sync_sap_purchase_order_disable" domainObjectName="OmsPurchaseOrderDisableDO"/>
        <!-- 可以添加多个 table 标签 -->

    </context>
</generatorConfiguration>

1.Entity实体类的文件夹路径如下,所以targetPackage路径写的是Entity的具体文件夹路径,targetProject写到java层即可:

2.Mapper XML文件夹路径如下,所以targetPackage路径写的是XML文件的具体文件夹路径,targetProject写到resources层即可:

3.Mapper接口文件的文件夹路径如下,所以targetPackage路径写的是Mapper接口文件的具体文件夹路径,targetProject写到java层即可:

4.指定生成的表填写具体的表名,domainObjectName则是具体生成DO的类名

三、在IDEA中运行MyBatis Generator

  1. 在 IDEA 右侧打开 Maven 工具窗口(View → Tool Windows → Maven)。
  2. 展开你的项目 → Plugins → mybatis-generator。
  3. 双击 mybatis-generator:generate,即可运行生成器。

生成完之后会生成以下这几个文件

复制代码
OmsPurchaseOrderDisableDO.java
OmsPurchaseOrderDisableDOExample.java
OmsPurchaseOrderDisableDOMapper.java
OmsPurchaseOrderDisableDOMapper.xml

四、注意事项

  • 覆盖问题 :如果 overwrite=true,每次生成会覆盖已有文件;否则不会覆盖,但可能无法更新字段变更。
相关推荐
维克兜率天7 小时前
【维克】ARMA模型:AR与MA的完美结合
后端·restful
是未才8 小时前
从输入 URL 到页面返回:DNS、路由、TLS 与 HTTP 完整链路
java·后端·计算机网络
上海安当技术8 小时前
半天接入:USBKey RESTful API + C 动态库,Web 和 C/S 两套集成路径实战
前端·后端·restful·集成·usbkey
DevUI团队9 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
weixin_4316004410 小时前
NestJS 入门(3):Guard 如何挡住未登录请求?
前端·后端·学习·nest.js
IT_陈寒10 小时前
JavaScript类型转换把我坑惨了,这破玩意真该早点搞明白
前端·人工智能·后端
用户9385156350711 小时前
手写一个 LLM Harness 框架:用工程化手段把大模型幻觉踩在脚下
javascript·人工智能·后端
wei_shuo12 小时前
KES 云原生部署与弹性扩展:容器化、Kubernetes编排与自动伸缩
后端
一木之林12 小时前
Python.五.(一)--1. 并发编程、异步IO与多进程
后端
feng尘12 小时前
# 彻底搞懂 ReentrantLock 与 tryLock:从秒杀实战到 AQS 独占模式源码剖析
后端