- 引入pom文件
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
- 代码生成器工具类
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MysqlCodeGenerator {
private static final String TABLE_NAMES = "meteorological_soil_data";
private static String FILE_NAMES = "meteorologicaldata";
private static String MOUDLES_NAMES = "meteorological-biz";
private static String PROJECT_PATH = System.getProperty("user.dir") + "\\" + MOUDLES_NAMES;
public static void main(String[] args) {
GlobalConfig globalConfig = createGlobalConfig();
DataSourceConfig dataSourceConfig = createDataSourceConfig();
PackageConfig packageConfig = createPackageConfig();
StrategyConfig strategyConfig = createStrategyConfig();
AutoGenerator autoGenerator = new AutoGenerator();
autoGenerator.setGlobalConfig(globalConfig)
.setDataSource(dataSourceConfig)
.setStrategy(strategyConfig)
.setPackageInfo(packageConfig)
.setTemplateEngine(new FreemarkerTemplateEngine());
InjectionConfig cfg = injectionConfig();
autoGenerator.setCfg(cfg);
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setXml(null);
autoGenerator.setTemplate(templateConfig);
autoGenerator.execute();
}
private static InjectionConfig injectionConfig() {
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
}
};
String templatePath = "/templates/mapper.xml.ftl";
List<FileOutConfig> focList = new ArrayList<>();
focList.add(new FileOutConfig(templatePath) {
@Override
public String outputFile(TableInfo tableInfo) {
return PROJECT_PATH + "//src/main/resources/mapper/" + FILE_NAMES + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
}
});
cfg.setFileOutConfigList(focList);
return cfg;
}
private static StrategyConfig createStrategyConfig() {
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
.setCapitalMode(true)
.setSkipView(true)
.setNaming(NamingStrategy.underline_to_camel)
.setColumnNaming(NamingStrategy.underline_to_camel)
.setEntityLombokModel(true)
.setEntityTableFieldAnnotationEnable(true)
.setRestControllerStyle(true)
.setControllerMappingHyphenStyle(true)
.setLogicDeleteFieldName("deleted")
.setEnableSqlFilter(true)
.setInclude(TABLE_NAMES.split(","))
.setExclude();
return strategyConfig;
}
private static PackageConfig createPackageConfig() {
PackageConfig packageConfig = new PackageConfig();
packageConfig
.setParent("com.ltd.cloud.meteorological.biz")
.setModuleName(FILE_NAMES)
.setEntity("entity.model")
.setController("controller")
.setService("repository")
.setServiceImpl("repository.impl")
.setMapper("dao.mapper");
return packageConfig;
}
private static DataSourceConfig createDataSourceConfig() {
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig
.setDbType(DbType.MYSQL)
.setDriverName("com.mysql.cj.jdbc.Driver")
.setUrl("jdbc:mysql://10.0.0.68:3306/meteorological?useUnicode=true&useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8")
.setUsername("root")
.setPassword("123456")
.setSchemaName("meteorological");
return dataSourceConfig;
}
private static GlobalConfig createGlobalConfig() {
GlobalConfig globalConfig = new GlobalConfig();
globalConfig
.setOutputDir(PROJECT_PATH + "/src/main/java")
.setAuthor("你的姓名")
.setOpen(false)
.setFileOverride(true)
.setSwagger2(true)
.setBaseResultMap(true)
.setBaseColumnList(true)
.setEntityName("%sDO")
.setControllerName("%sController")
.setServiceName("%sRepository")
.setServiceImplName("%sRepositoryImpl")
.setMapperName("%sMapper");
return globalConfig;
}
}