Spring Boot入门(15):一键生成,轻松搭建你的Spring Boot+MyBatis-Plus项目!

举报
bug菌 发表于 2023/08/26 20:25:10 2023/08/26
【摘要】 本文将使用 MyBatis-Plus 的 AutoGenerator 工具来生成 Spring Boot 项目的骨架代码。首先,我们将介绍 MyBatis-Plus 的基本概念和配置。然后,我们将使用 AutoGenerator 工具自动生成项目的实体类、Mapper 接口、Mapper XML 文件和 Service 层代码。最后,我们将介绍如何使用这些生成的代码来进行数据的增删改查操作。

1. 前言

Spring Boot 是一种全新的基于 Spring 框架的用于快速开发新一代应用程序的框架。它能够使开发者通过简单的配置快速搭建项目,并能够提供常见的功能模块,如数据库访问、事务管理、Web 开发和安全管理等。而 MyBatis-Plus 是一个功能强大的 MyBatis 增强工具,它基于 MyBatis 本身进行了扩展,可以大幅度减少开发工作量,提高开发效率。

本文将介绍如何使用 MyBatis-Plus 的 AutoGenerator 工具自动生成项目骨架代码,以此快速搭建 Spring Boot 项目的基础代码框架。

2. 摘要

本文将使用 MyBatis-Plus 的 AutoGenerator 工具来生成 Spring Boot 项目的骨架代码。首先,我们将介绍 MyBatis-Plus 的基本概念和配置。然后,我们将使用 AutoGenerator 工具自动生成项目的实体类、Mapper 接口、Mapper XML 文件和 Service 层代码。最后,我们将介绍如何使用这些生成的代码来进行数据的增删改查操作。

3. 正文

3.1 MyBatis-Plus 基本概念

MyBatis-Plus 是一个 MyBatis 的增强工具包,它提供了许多实用的功能,例如自动生成代码,分页插件,性能分析插件等。使用 MyBatis-Plus 可以大大减少开发人员的开发时间和代码量。

3.2 引入 MyBatis-Plus 依赖

要使用 MyBatis-Plus,首先需要在项目的 pom.xml 文件中引入依赖:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.2</version>
</dependency>

示例演示如下:
image.png

3.3 配置 MyBatis-Plus Generator

MyBatis-Plus 提供了一个名为 AutoGenerator 的代码生成器,可以自动生成实体类、Mapper 接口、Mapper XML 文件和 Service 层代码。为了使用 AutoGenerator,需要在项目的配置文件中配置以下属性:

# 数据库驱动
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 数据库连接地址
spring.datasource.url=jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf8
# 数据库用户名
spring.datasource.username=root
# 数据库密码
spring.datasource.password=root

# Mybatis-Plus Generator 配置
mybatis-plus.global-config.db-config.table-prefix=tb_
mybatis-plus.generator.author=author
mybatis-plus.generator.file-out-impl=org.mybatis.generator.internal.DefaultFileOutput
mybatis-plus.generator.template-path=classpath:/templates/mapper
mybatis-plus.generator.file-overwrite=true
mybatis-plus.generator.xml-disabled=true
mybatis-plus.generator.jdbc.driverClass=${spring.datasource.driver-class-name}
mybatis-plus.generator.jdbc.url=${spring.datasource.url}
mybatis-plus.generator.jdbc.userId=${spring.datasource.username}
mybatis-plus.generator.jdbc.password=${spring.datasource.password}

这些属性的含义如下:

  • spring.datasource.driver-class-name:数据库驱动
  • spring.datasource.url:数据库连接地址
  • spring.datasource.username:数据库用户名
  • spring.datasource.password:数据库密码
  • mybatis-plus.global-config.db-config.table-prefix:MyBatis-Plus 自动生成的实体类对应的数据库表的表名前缀
  • mybatis-plus.generator.author:生成代码的作者名称
  • mybatis-plus.generator.file-out-impl:生成代码的输出方式
  • mybatis-plus.generator.template-path:Mapper XML 文件的模板路径
  • mybatis-plus.generator.file-overwrite:是否覆盖已有的文件
  • mybatis-plus.generator.xml-disabled:是否生成 Mapper XML 文件
  • mybatis-plus.generator.jdbc.driverClass:数据库驱动
  • mybatis-plus.generator.jdbc.url:数据库连接地址
  • mybatis-plus.generator.jdbc.userId:数据库用户名
  • mybatis-plus.generator.jdbc.password:数据库密码

3.4 自动生成项目骨架代码

使用 AutoGenerator 自动生成实体类、Mapper 接口、Mapper XML 文件和 Service 层代码的步骤如下:

  1. 创建一个空的 Maven 项目。

  2. 在项目的 pom.xml 文件中引入 MyBatis-Plus 依赖,如上面所示。

  3. 在项目的 src/main/resources 目录下创建一个名为 generator.properties 的文件,配置 MyBatis-Plus Generator 的属性,如上面所示。

  4. 在项目的 src/main/java 目录下创建一个名为 com.example.demo.generator 包,在该包下创建一个名为 CodeGenerator 的 Java 类,代码如下:

public class CodeGenerator {

    public static void main(String[] args) {
        // 数据源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder("jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf8", "root", "root")
                .dbType(DbType.MYSQL)
                .typeConvert(new MySqlTypeConvert())
                .build();

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig.Builder()
                .addInclude("tb_user") // 设置需要生成代码的表名
                .naming(NamingStrategy.underline_to_camel)
                .build();

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig.Builder()
                .outputDir(System.getProperty("user.dir") + "/src/main/java")
                .author("Author")
                .fileOverride(true)
                .build();

        // 包名配置
        PackageConfig packageConfig = new PackageConfig.Builder()
                .parent("com.example.demo")
                .entity("entity")
                .mapper("mapper")
                .service("service")
                .controller("controller")
                .build();

        // 代码生成器
        AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfig);
        autoGenerator.setTemplateEngine(new FreemarkerTemplateEngine());
        autoGenerator.setStrategy(strategyConfig);
        autoGenerator.setGlobalConfig(globalConfig);
        autoGenerator.setPackageInfo(packageConfig);
        autoGenerator.execute();
    }

}
  1. 运行 CodeGenerator 类,即可自动生成实体类、Mapper 接口、Mapper XML 文件和 Service 层代码。

执行完毕后,将会生成如下代码:

- src
    - main
        - java
            - com.example.demo
                - entity
                    - User.java    // 自动生成的实体类
                - mapper
                    - UserMapper.java    // 自动生成的Mapper接口
                - service
                    - IUserService.java    // 自动生成的Service接口
                - controller
                    - UserController.java    // 自动生成的Controller接口

示例截图如下:
image.png

使用自动生成的代码进行数据操作

生成的代码包括实体类、Mapper 接口、Mapper XML 文件和 Service 层代码。下面是一个使用自动生成的代码进行增删改查操作的示例:

@RestController
@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping("/{id}")
    public User getUser(@PathVariable("id") Long id) {
        return userService.getById(id);
    }

    @DeleteMapping("/{id}")
    public boolean deleteUser(@PathVariable("id") Long id) {
        return userService.removeById(id);
    }

}

4. 小结

通过整合 Spring Boot 和 MyBatis-Plus AutoGenerator,我们可以自动生成项目骨架代码,从而加快项目开发速度和提高开发效率。以下是一些需要注意的点:

  • 需要正确配置 pom.xml 文件,包含必要的依赖和插件。

  • 自动生成的代码中可能存在一些冗余或不必要的代码,需要手动修改或删除。

  • 自动生成的代码可能不符合个性化需求,需要手动修改或添加。

  • 自动生成的代码应该按照一定的规范进行命名和组织,以方便后续的维护。

总的来说,MyBatis-Plus AutoGenerator 可以帮助我们快速搭建项目骨架,让开发变得更加高效和便捷,但是在使用过程中还是需要注意一些细节。

关于我

我是bug菌,CSDN | 阿里云 | 华为云 | 51CTO 等社区博客专家,历届博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金 | InfoQ | 51CTO等社区优质创作者,全网粉丝合计15w+ ;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试题、4000G pdf电子书籍、简历模板等海量资料。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。