mybatis中MyBatis Generator怎么用

发布时间:2021-12-15 11:41:22 作者:小新
来源:亿速云 阅读:212

MyBatis中MyBatis Generator怎么用

MyBatis Generator(简称MBG)是MyBatis官方提供的一个代码生成工具,它可以根据数据库表结构自动生成对应的实体类、Mapper接口以及XML映射文件。使用MBG可以极大地减少开发人员在编写重复代码上的时间,提高开发效率。本文将详细介绍如何在MyBatis项目中使用MyBatis Generator。

1. MyBatis Generator简介

MyBatis Generator是一个基于Java的代码生成工具,它可以根据数据库表结构自动生成以下内容:

通过使用MBG,开发人员可以避免手动编写这些重复的代码,从而将更多精力集中在业务逻辑的实现上。

2. 环境准备

在使用MyBatis Generator之前,需要确保以下环境已经准备好:

3. 配置MyBatis Generator

3.1 添加依赖

首先,在项目的pom.xml文件中添加MyBatis Generator的依赖:

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.1</version>
</dependency>

3.2 创建配置文件

接下来,创建一个名为generatorConfig.xml的配置文件,用于配置MyBatis Generator的生成规则。该文件通常放在src/main/resources目录下。

<?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="path/to/your/mysql-connector-java.jar" />

    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!-- 数据库连接配置 -->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/your_database"
                        userId="your_username"
                        password="your_password">
        </jdbcConnection>

        <!-- 生成Java模型类 -->
        <javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!-- 生成SQL映射文件 -->
        <sqlMapGenerator targetPackage="com.example.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" />
        <table tableName="order" domainObjectName="Order" />
    </context>
</generatorConfiguration>

3.3 配置说明

4. 运行MyBatis Generator

4.1 使用Maven插件运行

pom.xml中添加MyBatis Generator的Maven插件配置:

<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>
                <verbose>true</verbose>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>8.0.26</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

然后,在命令行中运行以下命令来生成代码:

mvn mybatis-generator:generate

4.2 使用Java代码运行

也可以通过编写Java代码来运行MyBatis Generator:

import org.mybatis.generator.api.ShellRunner;

public class MyBatisGenerator {
    public static void main(String[] args) {
        String config = MyBatisGenerator.class.getClassLoader().getResource("generatorConfig.xml").getFile();
        String[] arg = {"-configfile", config, "-overwrite"};
        ShellRunner.main(arg);
    }
}

运行该Java程序即可生成代码。

5. 生成代码的结构

运行MyBatis Generator后,生成的代码将按照配置文件中指定的路径和包名进行组织。通常,生成的代码结构如下:

src/main/java
└── com
    └── example
        ├── mapper
        │   ├── UserMapper.java
        │   └── OrderMapper.java
        └── model
            ├── User.java
            └── Order.java

src/main/resources
└── com
    └── example
        └── mapper
            ├── UserMapper.xml
            └── OrderMapper.xml

6. 自定义生成规则

MyBatis Generator提供了丰富的配置选项,允许开发人员根据需求自定义生成规则。以下是一些常见的自定义配置:

6.1 生成注释

可以通过配置commentGenerator来生成注释:

<commentGenerator>
    <property name="suppressDate" value="true" />
    <property name="suppressAllComments" value="false" />
</commentGenerator>

6.2 生成Example类

可以通过配置table元素的enableCountByExampleenableUpdateByExample等属性来生成Example类:

<table tableName="user" domainObjectName="User">
    <property name="enableCountByExample" value="true" />
    <property name="enableUpdateByExample" value="true" />
    <property name="enableDeleteByExample" value="true" />
    <property name="enableSelectByExample" value="true" />
    <property name="selectByExampleQueryId" value="true" />
</table>

6.3 生成自定义SQL

可以通过配置sqlMapGeneratortargetPackagetargetProject来生成自定义SQL:

<sqlMapGenerator targetPackage="com.example.custom" targetProject="src/main/resources">
    <property name="enableSubPackages" value="true" />
</sqlMapGenerator>

7. 常见问题与解决方案

7.1 生成的代码不符合预期

如果生成的代码不符合预期,可以检查以下几点:

7.2 生成的代码无法编译

如果生成的代码无法编译,可以检查以下几点:

7.3 生成的代码无法运行

如果生成的代码无法运行,可以检查以下几点:

8. 总结

MyBatis Generator是一个强大的代码生成工具,可以极大地提高开发效率。通过合理配置,开发人员可以快速生成符合需求的实体类、Mapper接口和XML映射文件。希望本文能够帮助读者更好地理解和使用MyBatis Generator。

推荐阅读:
  1. Mybatis generator config配置
  2. mybatis自动生成

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mybatis

上一篇:Kafka和Redis各自的优缺点是什么

下一篇:开源Chaperone中Uber是如何对Kafka进行端到端审计的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》