详解在springboot中使用Mybatis Generator的两种方式

下面我将详细讲解“详解在springboot中使用Mybatis Generator的两种方式”的完整攻略。

一、前置条件

在使用Mybatis Generator之前,我们需要先满足以下几个前置条件:

  1. 安装Maven和JDK,在此不再赘述;
  2. 在项目中引入依赖mybatis-generator-coremysql-connector-java,可以在pom.xml中进行以下配置:
<dependencies>
    <!-- mybatis-generator依赖 -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.3.7</version>
    </dependency>
    <!--mysql驱动依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>
</dependencies>

二、方式一:使用插件生成Mapper

1. 添加Mybatis Generator插件

pom.xml文件中加入以下配置:

<build>
    <plugins>
        <!-- MyBatis Generator 插件 -->
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.7</version>
            <configuration>
                <!--插件所需配置参数-->
            </configuration>
            <executions>
                <execution>
                    <id>Generate MyBatis Artifacts</id>
                    <phase>deploy</phase>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <!--插件配置结束-->
    </plugins>
</build>

2. 配置Mybatis Generator插件

maven插件mybatis-generator-maven-plugin中进行配置:

<configuration>
    <!--配置数据库基本信息-->
    <driverClass>com.mysql.jdbc.Driver</driverClass>
    <connectionURL>jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC</connectionURL>
    <userId>root</userId>
    <password>xxxxxx</password>
    <!--指定表,tableName就是指定你要生成的表的名字,可以多个,用“,”分开与<table>配置仅需使用一种-->
    <tableNames>user,role</tableNames>
    <!--指定生成文件的目录,以targetProject为首路径-->
    <targetProject>src/main/java</targetProject>
    <!--指定的根包名-->
    <targetPackage>com.example.demo.entity</targetPackage>
    <!--启用或禁用注释,默认启用-->
    <commentGenerator>
        <property name="suppressAllComments" value="false"/>
    </commentGenerator>
    <!--生成类型-->
    <generatorConfigurations>
        <!--通用mybatis模板-->
        <generatorConfiguration>
            <!-- xml格式 -->
            <property name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
            <!-- java格式 -->
            <property name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
        </generatorConfiguration>
    </generatorConfigurations>
</configuration>

3. 运行插件

配置完成后,就可以执行以下maven命令了:

mvn mybatis-generator:generate

运行完后,就可以在对应的文件夹中看到生成的Mapper文件。

方式二:使用Java代码生成Mapper

首先,定义一个Generator类,实现Mybatis Generator接口org.mybatis.generator.api.MyBatisGenerator,具体实现过程可以参考以下代码:

public class Generator implements MyBatisGenerator {
    private List<Context> contexts;

    @Override
    public void generate(
            null,
            ProgressCallback progressCallback,
            List<GeneratedJavaFile> javaFiles,
            List<GeneratedXmlFile> xmlFiles,
            List<String> warnings) throws InterruptedException, SQLException, IOException {
        try {
            ConfigurationParser cp = new ConfigurationParser(warnings);
            Configuration config = cp.parseConfiguration(new File("generatorConfig.xml"));
            DefaultShellCallback callback = new DefaultShellCallback(true);
            MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
            myBatisGenerator.generate(progressCallback, contexts, javaFiles, xmlFiles, warnings);
            System.out.println("生成Mapper成功!");
            System.out.println("Success");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    @Override
    public void setContexts(List<Context> contexts) {
        this.contexts = contexts;
    }
}

然后,我们需要在mavenpom.xml中引入依赖mybatis-generator-core

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

接着,在main方法中编写以下代码:

public static void main(String[] args) {
    List<String> warnings = new ArrayList<String>();
    boolean overwrite = true;
    String genCfg = "generatorConfig.xml";
    File configFile = new File(genCfg);
    ConfigurationParser cp = new ConfigurationParser(warnings);
    Configuration config;
    try {
        config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
        System.out.println("生成Mapper成功!");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (XMLParserException e) {
        e.printStackTrace();
    } catch (InvalidConfigurationException e) {
        e.printStackTrace();
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

配置完成后,就可以运行Java代码生成Mapper文件了。

以上就是在Spring Boot中使用Mybatis Generator的两种方式的详细攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解在springboot中使用Mybatis Generator的两种方式 - Python技术站

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

相关文章

  • Java enum的用法详细介绍及实例代码

    Java中的枚举类型是一种特殊的类,它具有固定数量和固定名称的常量。枚举类型可以让代码更加清晰易懂,避免了使用数字或字符串表示常量时出现的错误。 声明枚举类型 在Java中,声明枚举类型需要使用关键字enum。下面是一个最简单的例子: enum Weekday { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, S…

    Java 2023年5月23日
    00
  • Java实现学生管理系统详解流程

    Java实现学生管理系统详解流程 一、系统需求分析 1.1 系统功能需求 添加学生信息 删除学生信息 修改学生信息 查询学生信息 显示所有学生信息 1.2 系统性能需求 界面友好,操作简单明了 对学生信息进行持久化存储,确保数据不会丢失 查询、添加、删除、修改操作均要快速、正确 二、系统设计 2.1 数据库设计 使用MySQL数据库存储学生信息,设计学生表s…

    Java 2023年5月19日
    00
  • vuejs 动态添加input框的实例讲解

    下面是关于“vuejs 动态添加input框的实例讲解”的完整攻略: 1. 需求分析 在编写一个表单页面时,通常需要动态添加表单项,比如当用户需要输入多个电话号码时,我们需要在页面上动态添加多个电话输入框。这时我们可以使用 Vue.js 来实现动态添加 input 框。 2. 实现动态添加 input 框的步骤 2.1 定义数据 我们需要定义一个数组来存储 …

    Java 2023年6月15日
    00
  • Java异常类型及处理

    Java异常类型及处理攻略 异常定义 在程序执行时,如果出现某种错误或异常,则会产生异常。Java中所有的异常信息都是用异常类的形式传递的。在Java中,所有异常都是派生于Throwable类(它是 Java 语言中所有错误或异常的超类)的一个子类。它既包括异常(Exception)也包括错误(Error),它们有各自的特点: Exception Excep…

    Java 2023年5月26日
    00
  • Spring Security实现自动登陆功能示例

    下面是详细讲解Spring Security实现自动登陆功能的完整攻略。 什么是Spring Security Spring Security是Spring框架中的模块,它处理安全性和认证的方面。它可以与Spring应用程序的其他部分(如Spring MVC)无缝集成,从而使开发人员可以轻松地将安全性添加到他们的应用程序中。 自动登录功能的实现原理 自动登录…

    Java 2023年5月20日
    00
  • Spring Security结合JWT的方法教程

    我来详细讲解一下“Spring Security结合JWT的方法教程”的完整攻略。 1. 什么是Spring Security和JWT Spring Security是一种基于框架的安全性解决方案,它为Java应用程序提供了身份验证和身份验证授权功能。 JWT(JSON Web Token)是一种身份验证和授权的标准,它将声明和签名打包在一个安全令牌中。JW…

    Java 2023年5月20日
    00
  • java实现简单的学生信息管理系统代码实例

    针对“java实现简单的学生信息管理系统代码实例”的完整攻略,以下是详细讲解过程: 1.准备工作 首先,我们要在本地安装Java开发环境(Java Development Kit,简称JDK),可以从Oracle官网上下载并安装最新版JDK,安装过程中需要设置环境变量,以便于后续命令行操作。 2.创建项目 接下来,我们创建项目文件夹来存放程序代码和相关文件,…

    Java 2023年5月23日
    00
  • Java面试题冲刺第二十一天–JVM

    Java面试题冲刺第二十一天–JVM 一、了解JVM 1. JVM的概念 JVM(Java Virtual Machine)即Java虚拟机,是Java语言的运行环境,负责将Java字节码文件转换为机器指令执行。 2. JVM的内部结构 JVM的内部结构分为三个部分:类加载器,运行时数据区,执行引擎。 2.1 类加载器 用来加载类文件,包括如下几种类型: …

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