编写一个完成的java mybatis-plus代码生成器
时间: 2024-05-10 22:14:18 浏览: 118
mybatisplus代码生成
好的,以下是一个基于Java和MyBatis-Plus的代码生成器的实现步骤:
1. 创建Maven项目并添加依赖
```xml
<!-- MyBatis-Plus 代码生成器依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.2</version>
</dependency>
<!-- MySQL 驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
```
2. 创建代码生成器配置类
```java
public class CodeGeneratorConfig {
public static void main(String[] args) {
// 代码生成器
AutoGenerator generator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
globalConfig.setAuthor("your name");
globalConfig.setOpen(false);
globalConfig.setSwagger2(true);
generator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/db_name?useUnicode=true&useSSL=false&characterEncoding=utf8");
dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");
dataSourceConfig.setUsername("root");
dataSourceConfig.setPassword("password");
generator.setDataSource(dataSourceConfig);
// 包配置
PackageConfig packageConfig = new PackageConfig();
packageConfig.setParent("com.example.demo");
generator.setPackageInfo(packageConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig.setInclude("table_name");
strategyConfig.setNaming(NamingStrategy.underline_to_camel);
strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
strategyConfig.setEntityLombokModel(true);
strategyConfig.setRestControllerStyle(true);
generator.setStrategy(strategyConfig);
// 执行生成代码
generator.execute();
}
}
```
3. 运行代码生成器
执行 `CodeGeneratorConfig` 类中的 `main` 方法,即可在项目根目录下生成代码。
注意事项:
- `setUrl` 中的 `db_name` 需要替换为你的数据库名称。
- `setInclude` 中的 `table_name` 需要替换为你要生成代码的表名称。
- 如果需要生成 mapper.xml 文件,请添加以下配置:
```java
InjectionConfig injectionConfig = new InjectionConfig() {
@Override
public void initMap() {
// do nothing
}
};
List<FileOutConfig> fileOutConfigs = new ArrayList<>();
fileOutConfigs.add(new FileOutConfig("/templates/mapper.xml.vm") {
@Override
public String outputFile(TableInfo tableInfo) {
return System.getProperty("user.dir") + "/src/main/resources/mapper/" + tableInfo.getEntityName() + "Mapper.xml";
}
});
injectionConfig.setFileOutConfigList(fileOutConfigs);
generator.setCfg(injectionConfig);
```
- 如果需要生成 service、serviceImpl 类,请添加以下配置:
```java
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setService(null);
templateConfig.setServiceImpl(null);
generator.setTemplate(templateConfig);
```
以上是一个简单的Java MyBatis-Plus代码生成器的实现,仅供参考。
阅读全文