MyBatis(24)MyBatis Generator 是什么,如何使用

MyBatis Generator(MBG)是一个用于自动生成MyBatis的mapper XML文件、mapper接口以及对应实体类的代码生成工具。它能够极大地提高开发效率,避免手动编写大量重复的数据库访问代码。MBG支持通过数据库的表结构生成对应的代码,支持基于Java或XML的配置来指导代码的生成过程。

如何使用 MyBatis Generator

使用 MyBatis Generator 主要涉及以下几个步骤:

  1. 添加依赖:首先,需要在项目中添加 MyBatis Generator 的依赖。如果你使用 Maven,可以添加如下依赖到你的 pom.xml 文件中:

    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.4.0</version>
    </dependency>
    
  2. 配置生成器:接下来,需要创建一个配置文件(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>
      <context id="DB2Tables" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/yourdb"
                        userId="root"
                        password="password">
        </jdbcConnection>
        
        <javaModelGenerator targetPackage="model" targetProject="src/main/java">
          <property name="enableSubPackages" value="true" />
          <property name="trimStrings" value="true" />
        </javaModelGenerator>
        
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
          <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>
        
        <javaClientGenerator type="XMLMAPPER" targetPackage="mapper" targetProject="src/main/java">
          <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        
        <table schema="yourdb" tableName="your_table"></table>
      </context>
    </generatorConfiguration>
    
  3. 运行生成器:配置完成后,可以通过命令行或在 IDE 中运行 MyBatis Generator 来生成代码。如果使用 Maven,可以通过 MyBatis Generator Maven 插件来运行:

    <plugin>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-maven-plugin</artifactId>
        <version>1.4.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>generate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    然后运行 Maven 命令:

    mvn mybatis-generator:generate
    

源码解析和代码演示

MyBatis Generator 的核心是通过读取配置文件,并根据配置的数据库连接信息以及指定的表信息,生成对应的实体类、Mapper接口和XML文件。这一过程主要涉及以下几个关键组件:

  • Introspector: 用于读取数据库表的元数据。
  • Context: 配置文件中 <context> 标签的对象表现形式,它包含了所有的生成配置和规则。
  • JavaModelGenerator, SqlMapGenerator, JavaClientGenerator: 分别负责生成实体类、XML Mapper 文件和 Mapper 接口。
示例代码

以生成实体类为例,下面简要介绍 JavaModelGenerator 的工作流程:

  1. 读取 <context> 配置,初始化数据库连接,获取指定表的元数据。
  2. 根据表元数据,生成实体类的字段、方法等。
  3. 输出生成的代码到指定的目录和包下。

因源码和实现细节较为复杂,涉及大量的类和接口,这里不展开具体的源码解析。但核心思想是将数据库表结构映射为 Java 类,每个表的列映射为类的属性,同时生成相应的 Getter 和 Setter 方法,以及对应的 SQL Mapper 文件和接口。

总结

MyBatis Generator 是一个非常有用的工具,它可以自动化生成 MyBatis 使用的代码,极大地提高开发效率,减少重复劳动。通过简单的配置,就可以自定义生成符合项目需求的代码。尽管 MBG 可以自动完成许多任务,但了解其工作原理和能够根据项目需求调整配置仍然非常重要。

  • 21
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辞暮尔尔-烟火年年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值