springboot +mybatis plus 代码生成器
时间: 2023-07-25 18:16:38 浏览: 146
Mybatis Plus 是一款 Mybatis 的增强工具,可以简化开发人员的开发工作量。Mybatis Plus 提供了一个代码生成器,可以根据数据库表结构自动生成实体类、Mapper 接口和 XML 映射文件等代码,大大提高了开发效率。
下面是使用 Spring Boot 和 Mybatis Plus 的代码生成器的步骤:
1. 在 pom.xml 文件中添加 Mybatis Plus 和相应的数据库驱动依赖。
```xml
<!-- Mybatis Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
```
2. 在 application.yml 文件中配置数据库连接信息。
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
```
3. 编写代码生成器的配置类。
```java
package com.example.demo.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
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;
import org.springframework.context.annotation.Configuration;
@Configuration
public class CodeGeneratorConfig {
public void generateCode() {
String packageName = "com.example.demo"; // 包名
String[] tableNames = {"user", "role"}; // 表名
// 全局配置
GlobalConfig config = new GlobalConfig();
config.setAuthor("Your Name") // 作者
.setOutputDir(System.getProperty("user.dir") + "/src/main/java") // 生成路径
.setFileOverride(true) // 是否覆盖已有文件
.setIdType(IdType.AUTO) // 主键策略
.setServiceName("%sService") // 生成的 Service 接口名称首字母是否为 I
.setBaseResultMap(true) // 是否生成基本的 ResultMap
.setBaseColumnList(true); // 是否生成基本的 SQL 片段
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL) // 数据库类型
.setUrl("jdbc:mysql://localhost:3306/db_name?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai") // 数据库连接地址
.setUsername("root") // 数据库用户名
.setPassword("root"); // 数据库密码
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setCapitalMode(true) // 全局大写命名
.setNaming(NamingStrategy.underline_to_camel) // 数据库表映射到实体的命名策略
.setColumnNaming(NamingStrategy.underline_to_camel) // 数据库表字段映射到实体的命名策略
.setInclude(tableNames) // 需要生成的表
.setRestControllerStyle(true) // 是否生成 @RestController 控制器
.setEntityLombokModel(true) // 是否使用 Lombok 注解
.setControllerMappingHyphenStyle(true); // 驼峰转连字符
// 包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent(packageName)
.setEntity("entity")
.setMapper("mapper")
.setService("service")
.setController("controller");
// 代码生成器
AutoGenerator generator = new AutoGenerator();
generator.setGlobalConfig(config)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig);
generator.execute();
}
}
```
4. 在启动类中调用代码生成器的配置类。
```java
package com.example.demo;
import com.example.demo.config.CodeGeneratorConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
// 调用代码生成器
CodeGeneratorConfig generatorConfig = new CodeGeneratorConfig();
generatorConfig.generateCode();
}
}
```
5. 运行程序,代码生成器将在指定的目录下生成相应的代码文件。
注意,代码生成器会覆盖指定目录下的已有文件。请在使用代码生成器前备份好原有代码。
以上是使用 Spring Boot 和 Mybatis Plus 的代码生成器的简单示例。你可以根据实际需要调整配置类中的参数和方法来生成符合你需求的代码。
阅读全文