写一个mybatis-plus的自动生成代码的demo
时间: 2024-05-03 11:18:58 浏览: 162
好的,下面是一个简单的mybatis-plus自动生成代码的demo:
1. 首先,我们需要在pom.xml文件中添加相关依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3.0</version>
</dependency>
```
2. 接着,在resources目录下创建一个generator目录,用于存放代码生成器的配置文件。
3. 在generator目录下创建一个generatorConfig.properties文件,用于配置代码生成器的相关参数,具体可以参考如下示例:
```properties
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# 代码生成器配置
mybatis-plus.global-config.author=your name
mybatis-plus.global-config.outputDir=src/main/java
mybatis-plus.global-config.enableSwagger=true
mybatis-plus.strategy.superEntityClass=com.baomidou.mybatisplus.extension.activerecord.Model
mybatis-plus.strategy.superMapperClass=com.baomidou.mybatisplus.core.mapper.BaseMapper
mybatis-plus.strategy.superServiceClass=com.baomidou.mybatisplus.extension.service.IService
mybatis-plus.strategy.superServiceImplClass=com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
mybatis-plus.generator.fileOverride=true
mybatis-plus.generator.entityLombokModel=true
mybatis-plus.generator.basePackage=com.example.mybatisplus
mybatis-plus.generator.controllerPackage=com.example.mybatisplus.controller
mybatis-plus.generator.servicePackage=com.example.mybatisplus.service
mybatis-plus.generator.serviceImplPackage=com.example.mybatisplus.service.impl
mybatis-plus.generator.mapperPackage=com.example.mybatisplus.mapper
mybatis-plus.generator.xmlPackage=mapper
mybatis-plus.generator.tableNames=user
mybatis-plus.generator.includeTables=user
```
4. 接下来,我们需要编写代码生成器的启动类,具体代码如下:
```java
package com.example.mybatisplus.generator;
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;
/**
* mybatis-plus代码生成器
*/
public class CodeGenerator {
public static void main(String[] args) {
// 1. 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir("src/main/java"); // 生成文件的输出目录
globalConfig.setAuthor("your name"); // 作者
globalConfig.setOpen(false); // 是否打开输出目录
globalConfig.setFileOverride(true); // 是否覆盖已有文件
globalConfig.setIdType(IdType.AUTO); // 主键类型
globalConfig.setServiceName("%sService"); // Service接口的名称
globalConfig.setBaseResultMap(true); // 是否开启BaseResultMap
globalConfig.setBaseColumnList(true); // 是否开启baseColumnList
globalConfig.setSwagger2(true); // 是否开启Swagger2
// 2. 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL); // 数据库类型
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/mybatis_plus_demo?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC");
dataSourceConfig.setUsername("root"); // 数据库用户名
dataSourceConfig.setPassword("123456"); // 数据库密码
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); // 数据库驱动
// 3. 包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.mybatisplus"); // 包名
packageConfig.setController("controller"); // Controller包名
packageConfig.setEntity("entity"); // Entity包名
packageConfig.setService("service"); // Service包名
packageConfig.setServiceImpl("service.impl"); // ServiceImpl包名
packageConfig.setMapper("mapper"); // Mapper包名
// 4. 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel); // 数据库表映射到实体的命名策略
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); // 数据库表字段映射到实体的命名策略
strategyConfig.setEntityLombokModel(true); // 是否使用lombok注解
strategyConfig.setRestControllerStyle(true); // 是否使用RestController注解
strategyConfig.setInclude("user"); // 要生成的表名
strategyConfig.setControllerMappingHyphenStyle(true); // 是否开启controller类名称的连字符风格
// 5. 代码生成器配置
AutoGenerator generator = new AutoGenerator();
generator.setGlobalConfig(globalConfig);
generator.setDataSource(dataSourceConfig);
generator.setPackageInfo(packageConfig);
generator.setStrategy(strategyConfig);
generator.execute();
}
}
```
5. 最后,我们只需要运行CodeGenerator类即可自动生成代码。生成的代码会在src/main/java目录下的对应包名中。
以上就是一个简单的mybatis-plus自动生成代码的demo,希望能帮助到你。
阅读全文