文章目录
概要
MyBatis Generator(简称 MyBatis Generator 或 MyBatis-G)是一个用于生成 MyBatis 持久层代码的工具,它可以根据数据库中的表结构自动生成实体类、Mapper 接口和 XML 映射文件,从而减少手动编写重复的 CRUD 操作代码,提高开发效率。
MyBatis Generator 主要特点和功能
- 自动生成实体类: 根据数据库表结构,自动生成 Java 实体类,将数据库表的字段映射到类的属性。
- 自动生成 Mapper 接口: 自动生成与实体类对应的 Mapper 接口,包含常见的 CRUD(增删改查)操作方法。
- 自动生成 XML 映射文件: 自动生成 XML 文件,定义了 SQL 语句和参数映射等信息,使得数据库操作与 SQL 语句的绑定更加清晰。
- 支持多种生成策略: MyBatis Generator 支持多种生成策略,包括生成独立的实体类、生成带有注解的实体类、生成 Example 类用于条件查询等。
- 定制化配置: 可以通过配置文件或注解来定制生成过程,配置生成的包名、路径、命名规则等。
- 支持外部插件: MyBatis Generator 支持使用插件来扩展和定制生成的代码,开发者可以编写自定义插件来满足特定需求。
- 简化 CRUD 操作: 自动生成的 Mapper 接口和 XML 文件可以执行常见的增删改查操作,减少了开发人员编写重复性的 CRUD 代码。
- 集成 Maven 和 Gradle: 可以很方便地将 MyBatis Generator 集成到 Maven 或 Gradle 构建流程中,自动执行代码生成任务。
MyBatis Generator 的主要使用步骤
-
添加MyBatis Generator插件依赖: 需要将 MyBatis Generator 插件添加到项目中的构建文件(pom.xml)中
-
编写配置文件: 创建一个 MyBatis Generator 配置文件,指定数据库连接信息、要生成的表、生成策略等。
-
运行生成器: 使用命令行、Maven 或 Gradle 命令运行 MyBatis Generator,它会根据配置文件自动生成代码。
-
自定义插件和配置: 如果需要额外的定制化,可以编写自定义插件和配置,来满足特定的业务需求。
MyBatis Generator 在开发中的具体使用
1、 添加 MyBatis Generator 插件依赖
<!-- Maven 依赖 -->
<build>
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<configuration>
<!-- 插件配置文件的路径 -->
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<overwrite>true</overwrite>
</configuration>
<dependencies>
<!-- MySQL 驱动依赖,根据需要更改 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
2、编写配置文件
首先,需要创建一个 MyBatis Generator 的配置文件,通常是一个 XML 文件。在配置文件中,可以指定数据库连接信息、要生成的表、生成策略、生成文件的路径等。
以下是一个简单的示例配置文件 generatorConfig.xml
<!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.cj.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/mydb"
userId="root" password="password" />
<!-- 配置生成实体类的包名和位置 -->
<javaModelGenerator targetPackage="com.example.model"
targetProject="src/main/java" />
<!-- 配置生成 Mapper 接口的包名和位置 -->
<sqlMapGenerator targetPackage="com.example.mapper"
targetProject="src/main/resources" />
<!-- 配置生成 XML 映射文件的包名和位置 -->
<javaClientGenerator targetPackage="com.example.mapper"
targetProject="src/main/java"
type="XMLMAPPER" />
<!-- 配置要生成的表以及生成规则,tableName:数据库表名, domainObjectName:生成的对应实体类名称-->
<table tableName="user" domainObjectName="User" />
<!-- 配置要生成的表以及生成规则-->
<table tableName="order" domainObjectName="Order" />
</context>
</generatorConfiguration>
3、运行 MyBatis Generator
可以使用命令行、Maven 插件或 Gradle 插件来运行 MyBatis Generator。以下是一些示例命令
命令行方式
java -jar mybatis-generator-core-x.x.x.jar -configfile generatorConfig.xml
Maven 插件方式
mvn mybatis-generator:generate -Dmybatis.generator.configFile=generatorConfig.xml
Gradle 插件方式
gradlew generate -PconfigFile=generatorConfig.xml
4、生成代码
运行 MyBatis Generator 后,它将根据配置文件中的设置,自动生成实体类、Mapper 接口和 XML 映射文件,并将它们输出到指定的目录中。
小结
请注意,MyBatis Generator 的配置文件非常强大,可以配置非常多的细节,包括命名规则、注释、生成策略等。在实际使用中,你可能需要根据项目的需要进行适当的调整和定制。同时,生成的代码可以作为基础,你仍然可以手动添加额外的查询方法和业务逻辑。