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日

相关文章

  • 几种常用DB驱动和DB连接串小结

    关于“几种常用DB驱动和DB连接串小结”的攻略,以下是详细的介绍和示例说明。 1. 常见的DB驱动 在Java中常用的DB驱动主要有以下几种: 1.1 MySQL驱动 MySQL驱动目前最常用的是Connector/J,它是MySQL官方提供的Java驱动程序。可以从MySQL官网下载到最新的MySQL驱动。 1.2 Oracle驱动 Oracle官方提供的…

    Java 2023年6月16日
    00
  • asp的程序能实现伪静态化的方法

    ASP是一种动态网页开发技术,通常需要通过服务器端动态生成HTML代码。对于某些站点,如果开启了伪静态,可以有效地提升网站的SEO表现,提高流量。本文将详细讲解ASP程序如何实现伪静态化,包含以下内容: 了解伪静态化的原理 伪静态化是指将动态生成的页面URL转化为静态的HTML文档。例如将”index.asp?id=1″转化为”index_1.html”。当…

    Java 2023年6月15日
    00
  • MyBatis-Plus框架整合详细方法

    当我们将Spring Boot和MyBatis框架结合时,通常使用MyBatis-Plus作为MyBatis框架的扩展库。MyBatis-Plus简化了MyBatis的常见操作,使开发人员更轻松地完成数据访问层的开发。在下面的攻略中,我将会为大家讲解根据MyBatis-Plus官方文档整合MyBatis-Plus框架的详细方法。 1. 添加Maven依赖 在…

    Java 2023年5月20日
    00
  • java中通用的线程池实例代码

    下面就为大家详细讲解java中通用的线程池实例代码的完整攻略。 1. 线程池的概念 在java中,线程池是一个预先构建的线程集合,以便在需要执行任意数量的任务时重复使用线程,而不需要频繁地创建新线程。线程池中的线程可以在执行一些任务后重新被分配给新的任务,这样可以避免线程的频繁创建和销毁,从而提高了线程的利用率。 2. 如何使用线程池 在Java中,线程池是…

    Java 2023年5月30日
    00
  • Java 实战范例之校园二手市场系统的实现

    Java 实战范例之校园二手市场系统的实现 项目简介 本项目是一款基于Java的校园二手市场系统。该系统具有商品发布、购买、评论、搜索、推荐等功能,旨在为用户提供一个安全、高效、便捷的交易平台。 项目架构 服务器 本项目采用SpringBoot作为Web应用的框架,使用MySQL作为后端数据库,Spring Security负责安全认证、用户名密码加密等功能…

    Java 2023年5月24日
    00
  • 常见的Java集成测试框架有哪些?

    常见的Java集成测试框架有以下几种: JUnit JUnit是Java语言的一个单元测试框架。由Erich Gamma和Kent Beck创建,逐渐成为Java程序中最流行的测试框架之一。JUnit的主要特性包括测试集成、JUnit测试运行器、测试结果报告等。 使用JUnit进行集成测试的步骤: 1)编写测试用例 JUnit的测试用例由一个或多个测试方法组…

    Java 2023年5月11日
    00
  • Java Spring的使用注解开发详解

    “Java Spring的使用注解开发详解”是一个关于使用Spring框架的注解进行开发的攻略,本文将为你详细介绍这个过程。 1. Spring框架及其注解 Spring框架是一个用于构建企业级应用程序的Java框架,其提供了一整套解决方案,包括依赖注入(DI)、面向切面编程(AOP)、模板等。 在使用Spring框架进行开发时,我们可以使用注解来定义和配置…

    Java 2023年6月2日
    00
  • JAVA对象中使用 static 和 String 基础探究

    下面是关于“JAVA对象中使用 static 和 String 基础探究”的详细攻略。 1. static 关键字 在 Java 中,static 关键字主要用来修饰类而不是对象,一旦修饰了某个类中的成员变量或者方法,那么这个成员变量或者方法就变成了类级别的,这就意味着,无论创建了多少个对象,这个成员变量或者方法都只会被创建一次,所有的对象都可以直接访问这个…

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