mybatis-plus 代码生成器如何使用
时间: 2023-05-28 14:05:57 浏览: 133
MyBatis Plus中代码生成器使用详解
Mybatis-Plus代码生成器是一个可以根据数据库表结构生成Mybatis-Plus相关代码的工具,使用方法如下:
1. 引入Mybatis-Plus代码生成器依赖
```xml
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
```
2. 创建代码生成器配置文件
在项目中创建一个名为generator的module,然后在该module中创建generatorConfig.properties文件,该文件中可以配置生成代码的相关参数,比如数据库连接信息、生成代码的包路径等,具体配置可以参考Mybatis-Plus官方文档。
3. 编写代码生成器
在generator module中创建一个类,该类继承自AbstractGenerator,并实现其抽象方法,比如:
```java
public class MybatisPlusGenerator extends AbstractGenerator {
@Override
public void execute() {
// 执行代码生成器
new AutoGenerator()
.setDataSource(dataSourceConfig())
.setGlobalConfig(globalConfig())
.setStrategy(strategyConfig())
.setPackageInfo(packageConfig())
.setCfg(injectionConfig())
.setTemplate(templateConfig())
.execute();
}
// 数据源配置
private DataSourceConfig dataSourceConfig() {
return new DataSourceConfig()
.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8")
.setDriverName("com.mysql.jdbc.Driver")
.setUsername("root")
.setPassword("root");
}
// 全局配置
private GlobalConfig globalConfig() {
return new GlobalConfig()
.setOutputDir(System.getProperty("user.dir") + "/src/main/java")
.setFileOverride(true)
.setActiveRecord(false)
.setEnableCache(false)
.setBaseResultMap(true)
.setBaseColumnList(true)
.setAuthor("Mybatis-Plus Generator");
}
// 策略配置
private StrategyConfig strategyConfig() {
return new StrategyConfig()
.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setRestControllerStyle(true)
.setControllerMappingHyphenStyle(true)
.setInclude("user"); // 要生成的表名
}
// 包配置
private PackageConfig packageConfig() {
return new PackageConfig()
.setParent("com.example.mybatisplus.generator")
.setController("controller")
.setEntity("entity")
.setService("service")
.setMapper("mapper")
.setXml("mapper");
}
// 自定义配置
private InjectionConfig injectionConfig() {
return new InjectionConfig() {
@Override
public void initMap() {
// 自定义属性注入
Map<String, Object> map = new HashMap<>();
map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
this.setMap(map);
}
};
}
// 模板配置
private TemplateConfig templateConfig() {
return new TemplateConfig()
.setController(null)
.setEntity(null)
.setMapper(null)
.setXml(null)
.setService(null)
.setServiceImpl(null);
}
public static void main(String[] args) {
new MybatisPlusGenerator().execute();
}
}
```
4. 运行代码生成器
在MybatisPlusGenerator类中运行main方法即可生成代码。生成的代码会自动放置在指定的包路径下。
注意事项:
- 在运行代码生成器之前,需要先创建数据库表。
- 生成代码之前,需要仔细检查代码生成器配置文件中的参数是否正确,特别是数据库连接信息、生成代码的包路径等。
- 生成的代码只是基础代码,需要进一步进行修改和完善。
阅读全文