MyBatis-Plus(简称MP)提供了强大的代码生成器功能,可以帮助开发者快速生成与数据库表结构对应的Java实体类、Mapper接口、Mapper XML文件、Service接口及实现类、Controller类等。以下是如何使用MyBatis-Plus自动生成代码的详细步骤:
1. 准备环境
软件依赖:
- Java开发环境
- MyBatis-Plus框架(确保已安装最新或兼容版本)
- Spring Boot(如果项目基于Spring Boot搭建)
项目依赖: 在项目的pom.xml(Maven项目)或build.gradle(Gradle项目)中添加MyBatis-Plus及其相关依赖,例如:
Maven:
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本号</version>
</dependency>
</dependencies>
Gradle:
dependencies {
implementation 'com.baomidou:mybatis-plus-boot-starter:最新版本号'
}
记得替换为实际使用的MyBatis-Plus的最新版本号。
2. 配置数据库连接
在项目的配置文件(如application.yml或application.properties)中设置数据库连接信息:
application.yml:
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver # 根据实际情况调整
url: jdbc:mysql://localhost:3306/mydatabase?useSSL=false&serverTimezone=UTC
username: root
password: yourpassword
3. 编写代码生成配置类
创建一个Java类,用于配置代码生成的各项参数。通常会继承自com.baomidou.mybatisplus.generator.AutoGenerator类,并在其内部配置各项属性。以下是一个示例:
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
public class CodeGenerator {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mydatabase", "root", "yourpassword")
.globalConfig(builder -> {
builder.author("Your Name") // 设置作者
.outputDir("指定生成文件的输出目录"); // 设置生成文件的输出目录
})
.packageConfig(builder -> {
builder.parent("com.example.demo") // 设置父包名
.moduleName("system") // 设置模块名
.entity("model") // 设置entity所在包名
.mapper("mapper") // 设置mapper所在包名
.service("service") // 设置service所在包名
.controller("controller"); // 设置controller所在包名
})
.strategyConfig(builder -> {
builder.addInclude("your_table_name") // 需要生成的表名
.Naming(NamingStrategy.underline_to_camel); // 表名映射到实体类的命名策略
})
.execute(); // 执行生成
}
}
4. 配置细节说明
- 全局配置(GlobalConfig):
- author: 设置代码作者。
- outputDir: 指定生成文件的输出目录,通常为项目源码目录下的某个子目录。
- 包配置(PackageConfig):
- parent: 设置所有生成文件的父级包名。
- moduleName: 可选,设置模块名,用于在父包下进一步细分。
- entity、mapper、service、controller: 分别指定实体类、Mapper接口、Service接口及实现类、Controller类所在的子包名。
- 策略配置(StrategyConfig):
- addInclude: 指定需要生成代码的数据库表名,可添加多个。
- Naming: 设置表名到实体类名的转换策略,如underline_to_camel表示将下划线命名转换为驼峰命名。
5. 运行代码生成器
编译并运行上述CodeGenerator类的main方法。MyBatis-Plus代码生成器会根据提供的配置连接数据库,读取表结构信息,并在指定的输出目录下生成相应的Java代码文件。
6. 查看与调整生成的代码
生成完毕后,检查指定的输出目录,查看生成的代码是否符合预期。如有需要,可以根据项目具体需求手动调整生成的代码,如添加自定义逻辑、修改注解等。
注意事项
- 在实际使用时,请确保数据库连接信息正确无误,且有权限访问目标表。
- 生成器会覆盖已有同名文件,操作前备份重要代码以防止意外丢失。
- 虽然生成器能大大节省开发时间,但生成的代码可能需要根据项目具体业务逻辑进行适当的调整和优化。
通过以上步骤,即可利用MyBatis-Plus自动生成代码,极大地提高了开发效率。记得定期更新MyBatis-Plus到最新版本,以获取最新的特性和改进。