Spring Boot项目中利用MyBatis逆向工程提升开发效率

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 一、添加相关依赖要使用MyBatis逆向工程,我们首先需要在Spring Boot项目中添加必要的依赖。以下是在使用MySQL数据库的Spring Boot项目中,添加MyBatis及MyBatis Generator依赖的pom.xml配置:

一、添加相关依赖

要使用MyBatis逆向工程,我们首先需要在Spring Boot项目中添加必要的依赖。以下是在使用MySQL数据库的Spring Boot项目中,添加MyBatis及MyBatis Generator依赖的pom.xml配置:

<dependencies>
    <!-- Spring Boot Starters -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.4</version>
    </dependency>
    <!-- MyBatis Generator -->
    <dependency>
        <groupId>org.mybatis.generator</groupId>
        <artifactId>mybatis-generator-core</artifactId>
        <version>1.4.0</version>
    </dependency>
</dependencies>

二、编写Generator配置文件

MBG工作的基础是配置文件,这个配置文件告诉MBG如何连接数据库,以及如何生成哪些表的代码。在Spring Boot项目的src/main/resources目录下创建名为generatorConfig.xml的文件,并按照以下模板填写:

<?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="MysqlContext" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/test"
                        userId="root"
                        password="root">
        </jdbcConnection>
        <javaModelGenerator targetPackage="com.example.demo.entity" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        </javaModelGenerator>
        <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        </sqlMapGenerator>
        <javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java" type="XMLMAPPER">
            <property name="enableSubPackages" value="true"/>
        </javaClientGenerator>
        <table schema="test
" tableName="user" domainObjectName="User">
        </table>
    </context>
</generatorConfiguration>

三、编写代码生成器

接下来,我们在项目中创建一个用于执行代码生成的类。这个类的作用是读取generatorConfig.xml文件,并调用MyBatis Generator来生成代码。

以下是一个简单的生成器类示例:

import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.util.ArrayList;
import java.util.List;
public class CodeGenerator {
    public static void main(String[] args) throws Exception {
        List<String> warnings = new ArrayList<>();
        boolean overwrite = true;
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(CodeGenerator.class.getResourceAsStream("/generatorConfig.xml"));
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);
    }
}

四、执行代码生成

最后,只需要运行上面创建的CodeGenerator类的main方法,就可以根据generatorConfig.xml配置文件生成对应的代码了。启动项目并运行CodeGenerator主函数,代码会自动根据数据库表结构生成在你之前在配置文件中设置的目标路径。

public class CodeGenerator {
    public static void main(String[] args) throws Exception {
        // warnings用于存放代码生成过程中的警告信息
        List<String> warnings = new ArrayList<>();
        // 指定是否覆盖原有文件,如果为true则会覆盖原有文件
        boolean overwrite = true;
        // 解析MBG配置文件
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(CodeGenerator.class.getResourceAsStream("/generatorConfig.xml"));
        // 创建MBG
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        // 执行代码生成
        myBatisGenerator.generate(null);
        // 打印警告信息
        for (String warning : warnings) {
            System.out.println(warning);
        }
    }
}

五、验证生成的代码

代码生成完成后,我们可以在项目中看到新生成的实体类、Mapper接口以及Mapper XML映射文件。接下来,就可以使用这些代码进行数据库的操作了。

例如,对于我们在MBG配置文件中定义的"user"表,MBG生成了以下文件:

User.java:这是对应"user"表的实体类,包含了表中所有的字段及其getter和setter方法。


UserMapper.java:这是"user"表的Mapper接口,包含了对"user"表进行操作的基本方法,如select, insert, update, delete等。


UserMapper.xml:这是"user"表的Mapper XML映射文件,包含了对"user"表进行操作的SQL语句。你可以在Spring Boot服务中注入UserMapper使用,下面是一个简单的例子:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
@RestController
public class UserController {
    @Autowired
    private UserMapper userMapper;
    @GetMapping("/users")
    public List<User> getAllUsers() {
        return userMapper.selectAll();
    }
}

通过以上代码,你可以启动Spring Boot应用并访问"/users"路径获取数据库中所有的用户。


通过使用MyBatis Generator,我们可以根据数据库表快速生成对应的代码,大大提高了我们的开发效率,减少了重复的工作。无论是进行快速原型开发,还是处理大量数据库表的情况下,MyBatis Generator都是一个非常实用的工具。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
SQL Java 数据库连接
SpringBoot整合Mybatis
SpringBoot整合Mybatis
20 2
|
5天前
|
Java 数据库连接 Spring
Spring 整合mybatis
Spring 整合mybatis
16 2
|
1天前
|
JSON Java 数据格式
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
nbcio-boot升级springboot、mybatis-plus和JSQLParser后的LocalDateTime日期json问题
|
3天前
|
前端开发 安全 Java
使用Spring框架加速Java开发
使用Spring框架加速Java开发
5 0
|
4天前
|
Java
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
springboot项目出现Exception in thread “main“ java.lang.NoClassDefFoundError: javax/servlet/Filter
12 0
|
4天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
45 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
5天前
|
XML Java 数据格式
Spring 项目如何使用AOP
Spring 项目如何使用AOP
19 2
|
5天前
|
Java Spring
Spring boot项目如何发送邮件
Spring boot项目如何发送邮件
15 2
|
9天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
29 4
|
11天前
|
Java 数据库连接 数据库
Springboot整合mybatisPlus开发
MyBatis-Plus是一个MyBatis的增强工具,旨在简化开发和提高效率。它在不修改原有MyBatis的基础上提供额外功能。要将MyBatis-Plus集成到SpringBoot项目中,首先通过Maven添加mybatis-plus-boot-starter和相应数据库驱动依赖,然后配置application.yml中的数据库连接信息,并指定Mapper类的扫描路径。Mapper接口可继承BaseMapper实现基本的CRUD操作。