MyBatis代码自动生成与插件使用指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:MyBatis作为流行的持久层框架,通过其代码生成器MyBatis Generator(MBG),可以自动生成数据库操作相关的Java代码。本文详细介绍MBG及相关插件的安装、配置和使用方法,帮助开发者高效地管理和生成代码。 mybatis生成代码的相关插件和使用说明

1. MyBatis代码生成器(MyBatis Generator,MBG)概述

MyBatis是一个流行的Java持久层框架,而MyBatis Generator(MBG)则是为MyBatis提供代码自动生成工具,它能够根据数据库表结构生成操作数据库的代码,极大提高开发效率。MBG支持Java和XML两种映射文件格式,通过简单的配置即可实现模型类(Model)、映射文件(Mapper)和SQL映射语句的自动生成,从而让开发者能够专注于业务逻辑的实现。

1.1 MBG的作用与优势

MBG的核心作用是自动化地生成MyBatis的映射文件和SQL映射语句,同时生成与数据库表对应的Java实体类。它的优势在于:

  • 减少重复编码工作 :MBG能够自动创建CRUD操作的代码,减少重复代码的编写。
  • 提高开发效率 :开发人员不需要手动编写和维护繁琐的SQL语句和对应的Java代码。
  • 易于维护和扩展 :项目结构清晰,方便后期的维护和数据库表结构的变更。

1.2 MBG适用场景

MBG适合以下场景:

  • 快速开发 :在项目初期快速搭建数据库操作层。
  • 迭代开发 :在数据库结构频繁变动的项目中,减少修改代码的工作量。
  • 团队协作 :统一代码生成规则,保证团队内部的代码风格和一致性。

接下来的章节将逐步展开介绍MBG的安装配置、配置文件详解以及如何在各种集成开发环境中高效地使用MBG,最终提高整体的开发效率。

2. MBG安装与配置步骤

2.1 MBG环境搭建

2.1.1 JDK环境配置

在开始使用MyBatis Generator之前,确保已经正确安装了Java开发工具包(JDK)。MyBatis Generator是一个Java应用程序,它依赖于JDK来执行。因此,首先需要检查你的系统是否已经安装了JDK。

打开终端或命令提示符,输入以下命令来检查JDK是否已安装以及安装路径:

java -version

如果系统提示找不到 java 命令,说明JDK尚未安装。你需要从Oracle官网或其他JDK提供商处下载并安装JDK。

确保JDK正确安装后,将其添加到系统环境变量中。这通常包括 JAVA_HOME 环境变量的设置,以及将JDK的 bin 目录添加到系统的PATH变量中。在Windows系统中,你可以通过系统属性对话框来设置环境变量。对于Linux或macOS系统,你需要编辑 ~/.bashrc ~/.bash_profile 文件来添加相应的变量。

2.1.2 Maven或Gradle项目配置

MyBatis Generator可以通过Maven或Gradle这样的构建工具轻松集成到项目中。如果你的项目使用Maven作为构建工具,需要在项目根目录下的 pom.xml 文件中添加MyBatis Generator的依赖项和插件配置:

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.4.0</version>
            <configuration>
                <!-- 配置生成器 -->
            </configuration>
            <dependencies>
                <!-- 数据库连接驱动等 -->
            </dependencies>
        </plugin>
    </plugins>
</build>

如果使用Gradle,需要在 build.gradle 文件中添加如下配置:

plugins {
    id 'org.mybatis.generator' version '1.4.0'
}

// 配置信息和依赖项

确保你的项目已经添加了数据库连接所需的JDBC驱动依赖。这一步骤对于生成器能够连接到数据库并生成正确的代码至关重要。

2.2 MBG的下载与安装

2.2.1 从官方网站下载MBG

MyBatis Generator可以从其官方网站或GitHub仓库下载。下载完成后,解压到本地文件系统中的合适位置。

2.2.2 解压并安装MBG到项目中

解压缩下载的文件,并将解压后的目录中的 lib 子目录中的所有JAR文件添加到你的项目依赖中。在Maven项目中,你需要将这些JAR添加到 pom.xml 文件中的 <dependencies> 部分。在Gradle项目中,则需要将它们添加到 build.gradle 文件中的 dependencies 部分。

对于使用IDE的开发者,也可以通过IDE内置的依赖管理器将这些JAR文件添加到项目中。

2.3 MBG的配置文件生成

2.3.1 使用命令行工具生成配置文件

MyBatis Generator提供了一个简单的命令行工具,可以用来生成初始的配置文件。打开命令行界面,并导航到MBG的安装目录。运行以下命令:

java -jar mybatis-generator-core-x.x.x.jar -configfile mybatis-generator-config.xml -overwrite

这里的 mybatis-generator-config.xml 是你希望生成的配置文件名, -overwrite 参数是告诉MBG覆盖已存在的同名文件。 x.x.x 表示MBG的版本号。

2.3.2 配置文件内容解析

生成的配置文件是MyBatis Generator工作的核心。配置文件通常包含以下几个部分:

  • context :定义生成过程的上下文环境,比如数据库连接信息、特定生成器选项等。
  • jdbcConnection :数据库连接信息,如数据库URL、用户名、密码以及要使用的JDBC驱动。
  • javaModelGenerator :控制Java模型类的生成位置和属性。
  • sqlMapGenerator :配置SQL映射文件的生成位置。
  • javaClientGenerator :控制SQL Mapper接口的生成方式。

配置文件的结构通常如下所示:

<generatorConfiguration>
    <context id="DB2Tables" targetRuntime="MyBatis3">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                         connectionURL="jdbc:mysql://localhost:3306/mydatabase"
                         userId="username"
                         password="password">
        </jdbcConnection>
        <!-- 其他配置 -->
    </context>
</generatorConfiguration>

上述配置文件中的元素和属性需要根据实际的项目需求进行调整,以确保生成器能够正确生成所需的代码和文件。

请注意,以上示例仅用于展示配置文件的基本结构。在实际使用中,你需要根据自己的数据库表结构、项目需求以及个人偏好来设置这些参数。

在配置文件准备好之后,MyBatis Generator就可以根据这个配置文件来执行代码生成了。

3. MBG配置文件详解

3.1 MBG配置文件结构

MyBatis Generator (MBG) 的配置文件是整个代码生成过程的核心。它详细描述了数据库连接、实体类生成规则、映射文件生成规则以及插件等配置信息。理解MBG配置文件的结构对于高效使用MBG至关重要。

3.1.1 根元素context的配置

MBG配置文件的根元素是 <context> 。一个配置文件可以包含多个 <context> 元素,每个 <context> 对应一组特定的代码生成规则,可视为一个独立的代码生成上下文。下面是一个典型的 <context> 元素配置示例:

<context id="default" defaultModelType="flat">
    <!-- 其他配置 -->
</context>

这里 id 属性代表该上下文的唯一标识符, defaultModelType 属性定义了模型的生成方式, flat 表示所有表生成一个单独的模型。

3.1.2 JDBC连接信息配置

<context> 内部, <jdbcConnection> 子元素用于配置与数据库的连接信息。它通常包含如下子元素:

  • <driverClass> :驱动程序类全名。
  • <connectionURL> :数据库连接URL。
  • <userId> :数据库用户名。
  • <password> :数据库密码。

这是一个配置JDBC连接的示例:

<jdbcConnection driverClass="com.mysql.jdbc.Driver"
                connectionURL="jdbc:mysql://localhost:3306/mydatabase"
                userId="root"
                password="password">
    <!-- 可选的特定数据库连接配置 -->
</jdbcConnection>

3.2 实体类和映射文件生成策略

3.2.1 实体类的生成规则配置

实体类的生成规则在 <context> 元素下的 <javaModelGenerator> 元素中配置。它指定实体类和DAO接口生成的位置。以下是一个实体类生成规则配置的示例:

<javaModelGenerator targetPackage="com.example.model" targetProject="src/main/java">
    <!-- 生成的实体类所在包和项目路径 -->
</javaModelGenerator>

这里 targetPackage 属性指定了实体类的包路径, targetProject 属性指定了实体类在项目中的存放路径。

3.2.2 映射文件的生成规则配置

映射文件的生成规则配置在 <context> 元素下的 <sqlMapGenerator> 元素中。它指定了映射文件的存放位置,如下是一个示例:

<sqlMapGenerator targetPackage="com.example.mapper" targetProject="src/main/resources">
    <!-- 生成的SQL映射文件所在包和项目路径 -->
</sqlMapGenerator>

此处 targetPackage 定义了映射文件的包路径,而 targetProject 指定了映射文件存放的项目路径。

3.3 插件配置和个性化定制

3.3.1 插件的作用和配置方法

MBG允许通过插件来自定义代码生成的各个方面。在 <context> 内配置插件,可以提供更广泛的定制选项。一个插件配置通常包括以下信息:

  • pluginClass :插件实现类的全名。
  • properties :给插件提供额外的配置选项。

这是一个插件配置的示例:

<plugin type="com.example.CustomPlugin" configuration="pluginConfig">
    <!-- 插件的额外配置 -->
</plugin>

其中 type 属性指定了插件的实现类, configuration 属性指向了插件的配置文件或节点。

3.3.2 如何进行个性化定制

个性化定制是通过自定义插件来实现的。你可以创建自己的插件来更改生成的代码,或者为MBG添加新功能。以下是一个简单的插件类定义的示例:

public class CustomPlugin extends PluginAdapter {
    @Override
    public boolean modelExampleClassGenerated(TopLevelClass clazz, IntrospectedTable introspectedTable) {
        // 自定义模型类的处理逻辑
        return super.modelExampleClassGenerated(clazz, introspectedTable);
    }
}

该示例中的 modelExampleClassGenerated 方法可以在模型类生成后执行自定义操作。

通过对MBG的配置文件深入理解和个性化定制,开发者可以灵活地控制代码生成的各个方面,从而使MBG成为强大且适应不同需求的工具。接下来的章节将介绍如何通过各种方法执行代码生成以及如何利用MBG社区提供的扩展插件。

4. MBG执行代码生成的具体操作

4.1 命令行方式执行代码生成

4.1.1 MBG命令行工具介绍

MBG命令行工具(MyBatis Generator Command Line)是一个独立的Java应用程序,用于运行MyBatis Generator核心功能。它为用户提供了快速生成代码的能力,无需通过集成开发环境(IDE)即可完成代码的生成。该工具通过读取配置文件来确定生成代码的具体规则和细节,支持数据库连接和代码生成策略的配置,可实现Java对象(实体类)、数据库映射文件以及相应的MyBatis映射接口的自动生成。

4.1.2 执行代码生成的步骤和注意事项

为了使用命令行工具执行代码生成,您需要遵循以下步骤:

  1. 准备配置文件 :确保您已经有了一个配置好的MBG配置文件,通常命名为 generatorConfig.xml ,文件中应详细配置了数据库连接信息、表映射信息、实体类生成策略等。

  2. 设置环境变量 :确保JDK环境变量配置正确,以便能够运行Java程序,并确保 java 命令可以在命令行中直接调用。

  3. 运行命令行工具 : 打开命令行工具,导航至MBG的 bin 目录,使用以下命令格式来启动代码生成过程: sh java -jar mybatis-generator-core-x.x.x.jar -configfile <配置文件路径> -overwrite 其中 <配置文件路径> 需要替换成实际的MBG配置文件路径, -overwrite 参数表示如果目标位置已存在生成的文件,则覆盖它们。

  4. 注意事项

  5. 确保命令行工具的版本与您项目的依赖版本一致。
  6. 检查数据库连接信息是否正确,如数据库URL、用户名和密码。
  7. 查看生成文件前,建议先备份现有代码,以防生成过程出现错误导致数据丢失。

4.2 集成开发环境中的代码生成

4.2.1 IntelliJ IDEA中的MBG操作

在IntelliJ IDEA中集成MBG允许开发者通过图形界面来进行代码的生成,相比命令行方式,它提供了更加直观的操作和更好的集成体验。

  1. 安装MBG插件
  2. 打开IntelliJ IDEA,进入 Settings (或 Preferences )。
  3. 选择 Plugins ,然后点击 Marketplace
  4. 在搜索栏中输入"MyBatis Generator",找到对应的插件进行安装。

  5. 配置MBG插件

  6. 安装完成后,重启IDEA。
  7. 在项目视图中右键点击项目根目录,选择 MyBatis Generator -> Generate MyBatis Artifacts
  8. 配置文件路径选择之前准备好的 generatorConfig.xml 文件,并进行必要的插件配置。

  9. 运行MBG生成代码

  10. 点击 Generate 按钮执行代码生成。
  11. 生成完成后,IDEA会自动将生成的文件添加到项目中。

4.2.2 Eclipse中的MBG操作

Eclipse用户可以通过添加MyBatis Generator插件来实现图形化操作MBG。

  1. 安装Eclipse插件
  2. 打开Eclipse,选择 Help -> Eclipse Marketplace
  3. 搜索"MyBatis Generator"并选择适合的插件进行安装。

  4. 配置MBG插件

  5. 安装完成后,重启Eclipse。
  6. 在Eclipse中,右键点击项目,选择 MyBatis -> MyBatis Generator -> Generate MyBatis Artifacts
  7. 设置MBG配置文件路径,并根据需要进行额外的配置。

  8. 执行MBG生成代码

  9. 点击 Run 按钮开始代码的生成。
  10. 生成代码后,可以通过项目浏览器查看新增的文件。

4.3 代码生成后的文件结构和说明

4.3.1 自动生成的文件组成

MBG执行代码生成后,会根据配置文件中的信息生成以下类型的文件:

  • 实体类文件 :对应数据库表的Java对象类,包含字段、构造方法、getter和setter方法等。
  • 映射文件 :包含SQL映射语句,与数据库表的CRUD操作相对应。
  • Mapper接口 :定义操作数据库的方法,每个表对应一个接口。

4.3.2 文件的存放位置和作用

生成的文件将根据配置文件中指定的位置存放在项目中。通常,实体类文件存放在 src/main/java 目录下,而映射文件和Mapper接口则放在 src/main/resources 目录下。实体类文件直接参与业务逻辑的编写,映射文件和Mapper接口主要用于数据库操作的实现。通过这样的结构,开发者可以轻松地在业务代码中调用Mapper接口,执行对数据库的查询和更新操作。

5. MBG社区扩展插件介绍

在使用MyBatis Generator(MBG)的过程中,开发者可能会发现MBG本身提供的功能并不能完全满足所有的需求。幸运的是,MBG社区提供了丰富的插件来扩展MBG的功能,使得它能够更好地适应特定的开发场景。这些扩展插件可以极大地提高开发效率和质量,因此它们在社区中十分受欢迎。

5.1 插件的分类和功能

MBG社区的插件主要可以分为以下几类:

5.1.1 常见插件及其作用

  • 逆向工程插件: 这类插件能够将数据库表结构转换成MyBatis的映射文件和相关实体类。
  • 代码优化插件: 用于优化生成的代码,例如添加通用的方法、改善代码结构等。
  • 功能增强插件: 提供如缓存、多数据源支持等额外功能,使得MBG生成的代码更加丰富。

5.1.2 如何选择合适的插件

选择合适的插件,需要根据项目的需求以及团队的开发习惯进行。一些通用的建议包括:

  • 需求分析: 分析项目中是否有特定的需求,比如数据库迁移、缓存管理等。
  • 社区反馈: 查看社区的反馈和评价,以了解插件的稳定性和效能。
  • 兼容性检查: 确保所选插件与当前的开发环境和MBG版本兼容。

5.2 插件的安装和配置

安装和配置MBG插件的过程通常都很直接,但这里会具体介绍步骤和方法。

5.2.1 插件的下载与安装步骤

mybatis-generator-maven-plugin 为例,安装过程如下:

  1. 访问插件网站或Maven仓库: 找到需要的插件的下载链接。
  2. 添加插件依赖: 在项目的 pom.xml 文件中添加相应插件的依赖。 xml <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.4.0</version> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> <configuration> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> </plugin>

  3. 执行插件: 使用 mvn mybatis-generator:generate 命令来执行插件。

5.2.2 插件的配置方法和示例

每个插件都会有自己的配置项,以 mybatis-generator-maven-plugin 为例,可以在 pom.xml 中配置如下:

<configuration>
    <verbose>true</verbose>
    <overwrite>true</overwrite>
    <configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile>
</configuration>
  • verbose: 控制插件输出的详细程度。
  • overwrite: 控制是否覆盖原有生成的文件。
  • configurationFile: 指定MBG的配置文件路径。

5.3 插件的使用实例分析

为了更直观地了解插件的使用,我们来分析两个插件的使用实例。

5.3.1 具体插件的功能演示

假设我们使用一个名为 mybatis-generator-additional-methods-plugin 的插件,该插件能够在生成的Mapper接口中添加一些额外的方法。

5.3.2 插件带来的效率提升案例

在使用该插件前,团队需要手动添加这些方法到每个Mapper接口中,这不仅耗时而且容易出错。通过应用该插件,团队可以将这一过程自动化,极大提高了开发效率并降低了出错率。

public interface UserMapper {
    // ... 一些其他方法 ...

    List<User> selectAllUsers();
}

通过上述案例,我们能够看到,即使是一些简单的功能扩展,也可以在实际开发中带来显著的效率提升。这就是为什么在使用MBG时,合理利用社区插件是如此重要。

以上内容为MBG社区扩展插件的介绍,下一章节将会探讨如何在主流IDE中集成MBG,继续提高开发效率。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:MyBatis作为流行的持久层框架,通过其代码生成器MyBatis Generator(MBG),可以自动生成数据库操作相关的Java代码。本文详细介绍MBG及相关插件的安装、配置和使用方法,帮助开发者高效地管理和生成代码。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

一. 生成器模板路径可以引用相关变量 如 ${basepackage}/${className}.java,根据该变量生成输出文件 二. 自动搜索某个目录所有模板文件,无需配置 三.代码生成器模板可以引用的相关变量 1. g.generateByTable("table_name") 方法可以引用的变量 table : cn.org.rapid_framework.generator.provider.db.table.model.Table 2. g.generateByClass(UserInfo.class) 方法可以引用的变量 clazz : cn.org.rapid_framework.generator.provider.java.model.JavaClass 3. g.generateBySql("select * from user_info where pwd=:pwd") 方法可以引用的变量 sql : cn.org.rapid_framework.generator.provider.db.sql.model.Sql 4.公共变量 env : 系统环境变量 System.getProperties() : 直接引用,没有前缀 generator.properties 文件中的所有属性,直接引用,没有前缀 gg : 模板控制变量, cn.org.rapid_framework.generator.GeneratorControl 四.每个模板有gg变量可以控制自身的自定义配置 (每一个模板都会创建新的gg实例) 如是否生成,是否覆盖目标文件,甚至是生成其它文件 ${gg.setIgnoreOutput(true)}: 如果为true则不生成输出文件 ${gg.generateFile(outputFile,content)} 在模板中生成其它文件 ${gg.getProperty(key,defaultValue)}: 得到proproty,如果没有找到,则返回默认值 ${gg.getInputProperty(key)}: 会弹出一个输入框,提示用户输入值 具体参考: http://code.google.com/p/rapid-framework/wiki/rapid_generator_gg 五.支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除 六. 自动删除模板扩展名: .ftl,.vm 举例: 如你有一个模板 SqlMap.xml.ftl 将变为 SqlMap.xml 所以你要生成ftl扩展名的文件,应该将文件名从 list.ftl => list.ftl.ftl 七. 模板自动include所有父目录的:macro.include文件,可以存放公共的macro 示例: 如你的模板为 com/project/UserDao.java, 将自动include: com/project/macro.include, com/macro.include, macro.include 八. generator.xml (或者generator.properties)配置文件 1.类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME}, 引用System.getProperties()直接引用 2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"_dir"后缀 示例: pkg=com.company => pkg_dir=com/company 九.自动拷贝二进制文件至输出目录 如模板目录下的 zip,rar,doc文件将会自动拷贝至输出目录,不会破坏文件格式 (通过扩展名自动识别) 十. 数据库表配置,用于自定义生成器模板引用的table变量,配置文件必须存放在classpath: generator_config/table/table_name.xml (该文件生成器可以生成,自己再自定义修改)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值