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

yizhihongxing

下面我将详细讲解“详解在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 2023年6月16日
    00
  • 详解spring整合shiro权限管理与数据库设计

    详解Spring整合Shiro权限管理与数据库设计 引言 本文详细讲解如何使用Spring框架整合Shiro权限管理,并给出完整的数据库设计方案和示例代码。 Shiro简介 Shiro是一个强大的Java安全框架,可以提供身份认证、授权、加密等各种安全相关的功能。Shiro使用非常简单,易于集成到Java应用中。 Spring整合Shiro权限管理 引入Sh…

    Java 2023年5月20日
    00
  • SpringBoot+Spring Security+JWT实现RESTful Api权限控制的方法

    下面是“SpringBoot+Spring Security+JWT实现RESTful Api权限控制的方法”的完整攻略: 简介 本篇攻略介绍如何使用SpringBoot、Spring Security、JWT实现RESTful Api权限控制。Spring Security可以提供强大的身份验证和授权功能,而JWT可以用于生成安全的令牌。本攻略将介绍如何将…

    Java 2023年5月20日
    00
  • Java多线程实现快速切分文件的程序

    下面我将为你详细讲解“Java多线程实现快速切分文件的程序”的完整攻略。 1. 程序总体思路 本程序的主要任务是将大文件切分成若干个小文件,以便后续进行处理。我们可以采用多线程的方式来实现快速切分文件的功能,具体步骤如下: 读取需要进行切分的大文件,获取文件总长度。 根据线程数量计算每个线程需要读取的文件块大小及起始位置。 创建多个线程,每个线程负责读取指定…

    Java 2023年5月18日
    00
  • 解析Spring 漏洞及其修复方案

    解析Spring 漏洞及其修复方案 Spring框架是一款非常流行的Java应用程序框架,广泛应用于企业级应用程序开发中。然而,Spring框架中也有一些漏洞风险,这些漏洞可能会被黑客利用来攻击应用程序。以下是关于Spring漏洞及其修复方案的详细攻略。 Spring 漏洞类型 Spring框架中的漏洞风险主要分为以下几类: 注入漏洞:包括SQL注入和代码注…

    Java 2023年5月19日
    00
  • 解决Tomcat启动报异常java.lang.ClassNotFoundException问题

    下面是解决Tomcat启动报异常java.lang.ClassNotFoundException问题的完整攻略。 问题背景 在使用Tomcat启动项目时,有时候会出现java.lang.ClassNotFoundException异常,这是因为Tomcat无法找到相关的类文件。在这种情况下,需要进一步排查问题并解决它。 解决方法 1. 检查类路径 首先,需要…

    Java 2023年5月19日
    00
  • java后端把数据转换为树,map递归生成json树,返回给前端(后台转换)

    首先,需要明确一下这个过程的流程和目的:将后端获得的数据转换为树形结构,再通过递归生成 JSON 树,并返回给前端。下面我们将详细讲解这个过程。 1. 将数据转换为树形结构 首先,需要将后端的数据进行转换,变成树形结构。可以使用递归来完成这个过程。 具体实现方式如下:首先,定义一个树节点的类 Node,包含节点名称、节点编号、父节点编号、节点类型等属性。然后…

    Java 2023年5月26日
    00
  • Jackson的用法实例分析

    Jackson的用法实例分析 本文将介绍Jackson在Java中的用法实例,包括POM文件的配置、解析JSON字符串和生成JSON字符串。 POM文件配置 为了使用Jackson,需要在项目的POM文件中添加以下依赖项: <dependency> <groupId>com.fasterxml.jackson.core</gro…

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