依赖
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.apache.velocity:velocity-engine-core:2.0'
implementation 'com.baomidou:mybatis-plus:2.2.0'
implementation 'com.baomidou:mybatisplus-spring-boot-starter:1.0.5'
代码
public class App {
public static void main(String[] args) {
generatorCode();
}
public static void generatorCode(){
//项目名称
String projectName = "generator";
String url = "jdbc:mysql://localhost:3306/XXX?characterEncoding=utf8&allowMulitQueries=ture&useSSL=false&serverTimezone=UTC";
String dirverName = "com.mysql.cj.jdbc.Driver";
String parentPackage = "com.XXX.it";
String[] tables = new String[]{""};//排除的表外全部生成
GlobalConfig globalConfig = getGlobalConfig(projectName);
DataSourceConfig dataSourceConfig = getDatasourceConfig(url,dirverName);
StrategyConfig strategyConfig = getStrategyConfig(tables);
PackageConfig packageConfig = getPackageConfig(parentPackage);
new AutoGenerator().setGlobalConfig(globalConfig).setDataSource(dataSourceConfig)
.setStrategy(strategyConfig).setPackageInfo(packageConfig).execute();
}
private static GlobalConfig getGlobalConfig(String projectName ) {
String path = App.class.getClassLoader().getResource("").getPath();
int generator = path.lastIndexOf(projectName);
//如果不是子项目不要拼接projectName,driPath就是生成在哪个文件夹
//driPath=F:\workspace\much\generator\src\main\java/src/main/java
String driPath = path.substring(1,generator)+"/"+projectName+"/src/main/java";
return new GlobalConfig().setActiveRecord(true).setAuthor("author").setBaseColumnList(true)
.setBaseResultMap(true).setFileOverride(false).setServiceName("%sService").setOutputDir(driPath);
}
private static DataSourceConfig getDatasourceConfig(String url,String dirverName) {
return new DataSourceConfig().setDbType(DbType.MYSQL).setUrl(url).setUsername("root").setPassword("root").setDriverName(dirverName);
}
private static StrategyConfig getStrategyConfig( String[] tables) {
return new StrategyConfig().setCapitalMode(true).setNaming(NamingStrategy.underline_to_camel).setDbColumnUnderline(false)
.setEntityBuilderModel(true).setEntityLombokModel(true).setRestControllerStyle(true)
.setExclude(tables);
}
private static PackageConfig getPackageConfig( String parentPackage) {
return new PackageConfig().setController("controller").setParent(parentPackage);
}
}