Spring Boot入门(15):一键生成,轻松搭建你的Spring Boot+MyBatis-Plus项目!
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>
示例演示如下:
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 层代码的步骤如下:
创建一个空的 Maven 项目。
在项目的 pom.xml 文件中引入 MyBatis-Plus 依赖,如上面所示。
在项目的 src/main/resources 目录下创建一个名为 generator.properties 的文件,配置 MyBatis-Plus Generator 的属性,如上面所示。
在项目的 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();
}
}
- 运行 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接口
示例截图如下:
使用自动生成的代码进行数据操作
生成的代码包括实体类、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电子书籍、简历模板等海量资料。
- 点赞
- 收藏
- 关注作者
评论(0)