帮我写一个MyBatis Plus代码生成器的demo
时间: 2023-07-10 17:04:32 浏览: 101
好的,以下是一个简单的 MyBatis Plus 代码生成器的 demo:
1. 首先需要引入相关的依赖:
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.3.1</version>
</dependency>
```
2. 编写配置文件 application.yml,配置数据源以及 MyBatis Plus 相关的配置:
```yaml
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis-plus:
configuration:
# 驼峰命名规则
map-underscore-to-camel-case: true
# 生成器配置
generator:
# 生成输出目录
output-dir: src/main/java
# 生成器作者
author: your name
# 数据库表配置
db-config:
# 数据库类型
db-type: mysql
# 数据库 schema,POSTGRE_SQL,ORACLE,DB2类型的数据库需要指定
schema:
# 数据库表前缀
table-prefix: t_
# 数据库表配置
table-config:
# 是否生成实体类
entity: true
# 是否生成 mapper 接口
mapper: true
# 是否生成 service 接口
service: true
# 是否生成 service 实现类
service-impl: true
# 是否生成 controller
controller: true
```
3. 编写代码生成器逻辑:
```java
package com.example.mybatisplusdemo.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;
public class CodeGenerator {
public static void main(String[] args) {
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL)
.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC")
.setUsername("root")
.setPassword("123456")
.setDriverName("com.mysql.cj.jdbc.Driver");
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java")
.setAuthor("your name")
.setOpen(false)
.setIdType(IdType.AUTO)
.setBaseResultMap(true)
.setBaseColumnList(true);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.mybatisplusdemo")
.setEntity("entity")
.setMapper("mapper")
.setService("service")
.setServiceImpl("service.impl")
.setController("controller");
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setRestControllerStyle(true)
.setControllerMappingHyphenStyle(true);
// 代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setDataSource(dataSourceConfig)
.setGlobalConfig(globalConfig)
.setPackageInfo(packageConfig)
.setStrategy(strategyConfig);
autoGenerator.execute();
}
}
```
4. 运行代码生成器即可生成对应的代码。
注意:在运行代码生成器之前,需要先创建对应的数据库和表。并且在生成代码之前,需要先根据自己的需求修改配置文件和代码生成器逻辑。
阅读全文