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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 一、添加相关依赖要使用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都是一个非常实用的工具。

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
8月前
|
JSON 分布式计算 大数据
springboot项目集成大数据第三方dolphinscheduler调度器
springboot项目集成大数据第三方dolphinscheduler调度器
488 3
|
8月前
|
Java 关系型数据库 数据库连接
Spring Boot项目集成MyBatis Plus操作PostgreSQL全解析
集成 Spring Boot、PostgreSQL 和 MyBatis Plus 的步骤与 MyBatis 类似,只不过在 MyBatis Plus 中提供了更多的便利功能,如自动生成 SQL、分页查询、Wrapper 查询等。
787 3
|
8月前
|
Java 关系型数据库 MySQL
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
springboot项目集成dolphinscheduler调度器 实现datax数据同步任务
784 2
|
8月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
325 0
|
8月前
|
存储 Java 数据库连接
简单学Spring Boot | 博客项目的三层架构重构
本案例通过采用三层架构(数据访问层、业务逻辑层、表现层)重构项目,解决了集中式开发导致的代码臃肿问题。各层职责清晰,结合依赖注入实现解耦,提升了系统的可维护性、可测试性和可扩展性,为后续接入真实数据库奠定基础。
620 0
|
分布式计算 大数据 Java
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
springboot项目集成大数据第三方dolphinscheduler调度器 执行/停止任务
189 0
|
8月前
|
Java 应用服务中间件 Maven
第01课:Spring Boot开发环境搭建和项目启动
第01课:Spring Boot开发环境搭建和项目启动
1861 0
|
前端开发 JavaScript 关系型数据库
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
4178 2
前后端分离 -- SpringBoot + Vue实战项目 部署至阿里云服务器
|
Java 关系型数据库 MySQL
将springboot项目部署到阿里云服务器
将springboot项目部署到阿里云服务器
|
Java Maven
springboot项目打jar包后,如何部署到服务器
springboot项目打jar包后,如何部署到服务器
1269 1

热门文章

最新文章