Spring Boot项目使用MyBatis-Plus逆向自动生成全套代码攻略
1. 确保环境搭建
确保已经搭建好以下环境:
- JDK 8+
- Maven
- Spring Boot
- MyBatis-Plus
2. 配置数据库连接
在Spring Boot项目的application.properties
或application.yml
文件中配置数据库连接信息,例如:
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: root
3. 引入MyBatis-Plus依赖
在pom.xml
中,引入MyBatis-Plus的依赖:
<!-- MyBatis-Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>最新版本</version>
</dependency>
请确保将最新版本号替换为实际的版本号。
4. 配置代码生成器
创建一个配置类,用于配置代码生成器。可以在该类中设置要生成的实体类、Mapper接口和XML文件的目录等。
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
public class CodeGenerator {
public static void main(String[] args) {
// 1. 创建代码生成器
AutoGenerator generator = new AutoGenerator();
// 2. 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("作者名字");
globalConfig.setOpen(false);
globalConfig.setIdType(IdType.AUTO);
generator.setGlobalConfig(globalConfig);
// 3. 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("root");
dataSourceConfig.setDbType(DbType.MYSQL);
generator.setDataSource(dataSourceConfig);
// 4. 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.myproject");
packageConfig.setModuleName("module");
generator.setPackageInfo(packageConfig);
// 5. 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setSuperEntityClass("com.example.myproject.common.BaseEntity");
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
strategyConfig.setControllerMappingHyphenStyle(true);
strategyConfig.setEntityTableFieldAnnotationEnable(true);
strategyConfig.setLogicDeleteFieldName("deleted");
strategyConfig.setVersionFieldName("version");
strategyConfig.setInclude("table1", "table2"); // 设置要生成的表名
strategyConfig.setTablePrefix(packageConfig.getModuleName() + "_");
generator.setStrategy(strategyConfig);
// 6. 模板引擎配置
generator.setTemplateEngine(new FreemarkerTemplateEngine());
// 7. 执行代码生成器
generator.execute();
}
}
请根据实际需求修改配置参数。
5. 生成代码
运行CodeGenerator
类的main
方法,MyBatis-Plus将根据配置生成实体类、Mapper接口和XML文件。代码默认会生成在指定的输出目录下。
示例1:生成单表的代码
假设有一张名为user
的用户表,我们想要生成与之对应的代码。
- 在
CodeGenerator
类的main
方法中,将以下代码添加到策略配置中:
strategyConfig.setInclude("user");
- 运行
CodeGenerator
类的main
方法,代码生成器将根据配置自动生成User
实体类、UserMapper
接口和UserMapper.xml
文件。
示例2:生成多表的代码
假设有两张名为user
和role
的表,我们想要生成与之对应的代码。
- 在
CodeGenerator
类的main
方法中,将以下代码添加到策略配置中:
strategyConfig.setInclude("user", "role");
- 运行
CodeGenerator
类的main
方法,代码生成器将根据配置自动生成User
和Role
两个实体类、UserMapper
和RoleMapper
两个接口以及对应的XML文件。
总结
通过以上步骤,我们可以使用MyBatis-Plus的代码生成器快速生成与数据库表对应的实体类、Mapper接口和XML文件。这样可以减少手动编写重复代码的工作量,提高开发效率。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot项目使用mybatis-plus逆向自动生成全套代码 - Python技术站