全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-20 6 分钟 ✍️ juanwangdev

Mapper 代码生成

MyBatis Generator (MBG) 可自动生成基础 CRUD 代码,下面介绍其使用方法。

配置 MBG 插件

pom.xml 中添加插件依赖:

XML
<plugin>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-maven-plugin</artifactId>
    <version>1.4.2</version>
    <configuration>
        <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
        <overwrite>true</overwrite>
        <verbose>true</verbose>
    </configuration>
</plugin>

配置生成规则

创建 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>
    <!-- 数据库驱动 -->
    <classPathEntry location="D:/mysql-connector-java-8.0.33.jar"/>
    
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 数据库连接 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                       connectionURL="jdbc:mysql://localhost:3306/mybatis_demo"
                       userId="root"
                       password="123456">
        </jdbcConnection>
        
        <!-- 生成实体类 -->
        <javaModelGenerator targetPackage="com.example.entity"
                          targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        
        <!-- 生成 Mapper 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 tableName="user" domainObjectName="User"
               enableCountByExample="false"
               enableUpdateByExample="false"
               enableDeleteByExample="false"
               enableSelectByExample="false">
        </table>
    </context>
</generatorConfiguration>

注意:推荐禁用 *ByExample 方法(设为 false),避免生成冗余代码。

执行生成命令

Bash
mvn mybatis-generator:generate

生成后的文件结构:

Java
src/main/java/
└── com/example/
    ├── entity/User.java
    └── mapper/UserMapper.java
src/main/resources/
└── mapper/UserMapper.xml

自定义生成器

可通过实现 Plugin 接口定制生成逻辑:

text
public class CustomPlugin implements Plugin {
    @Override
    public boolean validate(List<String> warnings) {
        return true;
    }
    
    @Override
    public List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles(IntrospectedTable introspectedTable) {
        // 自定义生成额外 Java 文件
        return null;
    }
}

要点总结

  • MBG 自动生成 Entity、Mapper 接口、XML 映射文件
  • 配置 generatorConfig.xml 指定表与包映射关系
  • 推荐禁用 *ByExample 减少冗余代码
  • 通过 Plugin 接口可定制生成逻辑

文章存放路径:articles/MYBATIS/入门/MyBatis 概述与环境搭建/Mapper 代码生成.md

📝 发现内容有误?点击此处直接编辑

下一篇 → MyBatis 框架简介
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库