MyBatis Generator的简单使用方法示例

MyBatis Generator 的简单使用方法示例

什么是 MyBatis Generator

MyBatis Generator 是一个基于 Java 的代码生成器,可以快速为 MyBatis 创建数据访问层代码。使用 MyBatis Generator 可以自动生成 MyBatis 的 POJO 类、Mapper 接口和 SQL 映射文件。

MyBatis Generator 的主要特点:

  • 提供多种代码生成选项,可灵活定制生成的代码。
  • 支持多种数据库,包括 MySQL、Oracle、DB2、SQL Server 等。
  • 生成的代码可以与 MyBatis 或者 Spring 等框架集成。
  • 易于使用,适合快速开发和小型项目。

MyBatis Generator 的使用方法

使用 MyBatis Generator 需要了解以下几个步骤:

  1. 准备数据库连接配置文件和生成器配置文件;
  2. 编写自定义的代码生成插件(可选);
  3. 运行生成器。

步骤一:准备配置文件

MyBatis Generator 需要两个配置文件:数据库连接配置文件和生成器配置文件。

数据库连接配置文件

数据库连接配置文件是 jdbc.properties(或 jdbc.xml), 其中包含了连接数据库的参数,如下所示:

# JDBC 驱动程序
jdbc.driverClassName=com.mysql.cj.jdbc.Driver

# 数据库连接 URL 地址
jdbc.url=jdbc:mysql://localhost:3306/mybatis_example?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai

# 数据库连接用户名
jdbc.username=root

# 数据库连接密码
jdbc.password=123456

生成器配置文件

生成器配置文件是 generatorConfig.xml,包含了生成器的配置选项。具体配置项请参考 MyBatis Generator 官方文档。

步骤二:编写自定义的代码生成插件(可选)

MyBatis Generator 可以通过插件的方式扩展其生成功能。如果需要编写自定义的插件,可以继承 org.mybatis.generator.api.PluginAdapter 类并实现相应的方法。

以下是一个示例,实现自定义注释插件,为生成的 Java 类添加注释:

public class MyCommentPlugin extends PluginAdapter {

    private static final String AUTHOR = "MyBatis Generator";

    @Override
    public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
        addComment(topLevelClass, introspectedTable.getRemarks());
        return true;
    }

    @Override
    public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
            IntrospectedTable introspectedTable, ModelClassType modelClassType) {
        addComment(field, introspectedColumn.getRemarks());
        return true;
    }

    @Override
    public boolean sqlMapInsertElementGenerated(XmlElement element, IntrospectedTable introspectedTable) {
        addComment(element, "插入数据库记录");
        return true;
    }

    private void addComment(JavaElement element, String commentText) {
        element.addJavaDocLine("/**");
        element.addJavaDocLine(" * " + commentText);
        element.addJavaDocLine(" *");
        element.addJavaDocLine(" * @author");
        element.addJavaDocLine(" * " + AUTHOR);
        element.addJavaDocLine(" */");
    }

}

步骤三:运行生成器

MyBatis Generator 提供了多种方式运行生成器,包括使用 Ant、命令行,或者在 Maven 中配置插件等。这里我们以命令行的方式为例:

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

以上命令将会根据 generatorConfig.xml 文件自动生成代码,并覆盖已经存在的文件。

示例

以下是两个示例,使用 MyBatis Generator 自动生成 POJO 类、Mapper 接口和 SQL 映射文件。

示例一:生成单表操作的代码

假设有一个表 user,包含了 idnameage 等字段。接下来我们使用 MyBatis Generator 自动生成与该表操作相关的代码。

步骤一:准备配置文件

假设连接数据库的信息已经写在了 jdbc.properties 文件中,我们需要编写 generatorConfig.xml 文件,用于配置 MyBatis Generator 的生成器选项。以下是一份简单的配置文件示例:

<?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="mybatis-table" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="${jdbc.driverClassName}"
                    connectionURL="${jdbc.url}"
                    userId="${jdbc.username}"
                    password="${jdbc.password}">
    </jdbcConnection>

    <!-- 配置生成的目标包名 -->
    <javaModelGenerator targetPackage="com.example.model"
                        targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>

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

    <!-- 配置生成的接口 -->
    <javaClientGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/java"
                         type="XMLMAPPER">
      <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>

    <!-- 配置要生成的表名称以及字段映射 -->
    <table tableName="user" domainObjectName="User"
           enableCountByExample="false" enableUpdateByExample="false"
           enableDeleteByExample="false" enableSelectByExample="false"
           selectByExampleQueryId="false">

      <columnOverride column="id" property="id" jdbcType="INTEGER"/>
      <columnOverride column="name" property="name" jdbcType="VARCHAR"/>
      <columnOverride column="age" property="age" jdbcType="TINYINT"/>

    </table>

  </context>
</generatorConfiguration>

步骤二:运行生成器

并行以下命令,即可生成代码:

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

以上命令将会在 src/main/java/com/example/modelsrc/main/java/com/example/mapper 以及 src/main/resources/com/example/mapper 目录下生成相关的代码文件。

示例二:生成多表操作的代码

假设有两个表 userorder,我们需要分别为这两个表生成相关的 POJO、Mapper 和 SQL 映射文件。示例代码如下:

步骤一:准备配置文件

假设连接数据库的信息已经写在了 jdbc.properties 文件中,我们需要编写 generatorConfig.xml 文件,用于配置 MyBatis Generator 的生成器选项。以下是一份简单的配置文件示例:

<?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="mybatis-table" targetRuntime="MyBatis3">
    <jdbcConnection driverClass="${jdbc.driverClassName}"
                    connectionURL="${jdbc.url}"
                    userId="${jdbc.username}"
                    password="${jdbc.password}">
    </jdbcConnection>

    <!-- 配置生成的目标包名 -->
    <javaModelGenerator targetPackage="com.example.model"
                        targetProject="src/main/java">
      <property name="enableSubPackages" value="true"/>
      <property name="trimStrings" value="true"/>
    </javaModelGenerator>

    <!-- 配置生成的 XML 目录 -->
    <sqlMapGenerator targetPackage="com.example.mapper"
                     targetProject="src/main/resources">
      <property name="enableSubPackages" value="true"/>
    </sqlMapGenerator>

    <!-- 配置生成的接口 -->
    <javaClientGenerator targetPackage="com.example.mapper"
                         targetProject="src/main/java"
                         type="XMLMAPPER">
      <property name="enableSubPackages" value="true"/>
    </javaClientGenerator>

    <!-- 配置要生成的表及字段 -->
    <table tableName="user" domainObjectName="User"
           enableCountByExample="false" enableUpdateByExample="false"
           enableDeleteByExample="false" enableSelectByExample="false"
           selectByExampleQueryId="false">

      <columnOverride column="id" property="id" jdbcType="INTEGER"/>
      <columnOverride column="name" property="name" jdbcType="VARCHAR"/>
      <columnOverride column="age" property="age" jdbcType="TINYINT"/>

    </table>

    <table tableName="order" domainObjectName="Order"
           enableCountByExample="false" enableUpdateByExample="false"
           enableDeleteByExample="false" enableSelectByExample="false"
           selectByExampleQueryId="false">

      <columnOverride column="id" property="id" jdbcType="INTEGER"/>
      <columnOverride column="no" property="no" jdbcType="VARCHAR"/>
      <columnOverride column="price" property="price" jdbcType="DECIMAL"/>

    </table>

  </context>
</generatorConfiguration>

步骤二:运行生成器

并行以下命令,即可生成代码:

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

以上命令将会在 src/main/java/com/example/modelsrc/main/java/com/example/mapper 以及 src/main/resources/com/example/mapper 目录下生成相关的代码文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MyBatis Generator的简单使用方法示例 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 一文详解Spring Security的基本用法

    一文详解Spring Security的基本用法 前言 Spring Security是一个基于Spring框架的安全认证和权限控制框架,为我们的Web应用提供了完善的身份认证和授权管理功能。本文将介绍Spring Security的基本用法,帮助读者了解其概念和使用方法。 Spring Security的基本概念 身份认证 身份认证即验证一个用户是否是系统…

    Java 2023年6月3日
    00
  • spring batch使用reader读数据的内存容量问题详解

    下面是详细讲解“spring batch使用reader读数据的内存容量问题详解”的完整攻略。 1. 什么是Spring Batch Spring Batch是一个轻量级的综合批处理框架,用于开发企业级批处理应用程序。它允许开发人员能够处理大规模的数据,并且将这些数据转换成期望的格式,以便于后续处理。 2. Spring Batch读取器的内存容量问题 在S…

    Java 2023年6月3日
    00
  • java基本教程之join方法详解 java多线程教程

    Java中的join()方法是多线程编程常用的一个方法,它的作用是让调用该方法的线程等待被调用线程执行完毕后再继续执行。本文将详细讲解join()方法的使用和注意事项。 什么是join()方法 在介绍join()方法之前,我们先回忆一下多线程的基础。在Java中,当创建一个线程对象并调用start()方法后,线程对象就会进入就绪状态,等待CPU分配时间片段并…

    Java 2023年5月18日
    00
  • Spring Security认证器实现过程详解

    Spring Security认证器实现过程详解 Spring Security是用于保护Web应用程序的开放源代码框架。它可以提供基于角色的安全性,对用户进行身份验证和访问控制来保护应用程序。本文将详细介绍Spring Security认证器实现的过程。 一. Spring Security认证器 Spring Security提供了一个框架来处理所有We…

    Java 2023年6月3日
    00
  • Java中redis的基本类型

    以下是 “Java中redis的基本类型”的详细攻略。 什么是Redis Redis是一个开源的基于键值对存储的NoSQL数据库系统。它支持字符串、列表、集合、有序集合、哈希表等数据类型,同时也支持发布订阅、事务、Lua脚本等高级功能。Redis的主要优势是性能高、稳定性强,同时支持丰富的数据类型和数据结构。 Redis中的基本数据类型 字符串类型 Redi…

    Java 2023年5月20日
    00
  • Spring Security实现统一登录与权限控制的示例代码

    下面是Spring Security实现统一登录与权限控制的示例代码攻略。 一、概述 Spring Security是一个强大的安全性框架,它可用于实现统一登录和权限控制。本文主要介绍如何使用Spring Security实现统一登录和权限控制。本文适用于有一定的JavaWeb开发经验的读者。 二、Spring Security配置 要使用Spring Se…

    Java 2023年5月20日
    00
  • 基于SpringBoot实现上传2种方法工程代码实例

    下面是关于“基于SpringBoot实现上传2种方法工程代码实例”的攻略: 1. 概述 SpringBoot提供了很多方便开发的功能,其中之一就是文件上传。文件上传需要前端页面和后端接口配合实现。前端页面负责UI界面展示和获取用户输入,后端接口负责接收上传的文件并保存在服务器上。 2. 文件上传方法 2.1. 前端表单上传 前端表单上传是指用户在页面上填写表…

    Java 2023年5月20日
    00
  • Java实现调用MySQL存储过程详解

    下面是关于“Java实现调用MySQL存储过程详解”的完整攻略。 什么是存储过程 存储过程是一组预先编译好的SQL语句集合,存储在数据库中,可以在需要时被调用执行。存储过程可以接受参数并返回数据,被广泛应用于数据处理和业务流程中,广泛使用于各种数据库系统中。 Java如何调用MySQL存储过程 Java程序可以通过调用JDBC API中提供的方法来调用MyS…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部