1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
| import com.baomidou.mybatisplus.generator.FastAutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.stark37125.core.base.cons.CommonField; import com.stark37125.core.base.controller.MyController; import com.stark37125.core.base.mapper.MyMapper; import com.stark37125.core.base.model.entity.MyEntity; import com.stark37125.core.base.service.MyService; import com.stark37125.core.base.service.impl.MyServiceImpl;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Collections; import java.util.regex.Matcher; import java.util.regex.Pattern;
public class CodeGenerator {
private static Pattern humpPattern = Pattern.compile("[A-Z]");
public static String humpToLine(String str) { Matcher matcher = humpPattern.matcher(str); StringBuffer sb = new StringBuffer();
while (matcher.find()) { matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase()); }
matcher.appendTail(sb); return sb.toString(); }
static String[] commonField = new String[]{CommonField.CREATE_OBJ_ID_FIELD, CodeGenerator.humpToLine(CommonField.CREATE_OBJ_TYPE), CodeGenerator.humpToLine(CommonField.CREATE_USER), CodeGenerator.humpToLine(CommonField.DELETE_FLAG), CodeGenerator.humpToLine(CommonField.OBJ_ID), CodeGenerator.humpToLine(CommonField.OBJ_TYPE), CodeGenerator.humpToLine(CommonField.UPDATE_USER), CodeGenerator.humpToLine(CommonField.ID), CodeGenerator.humpToLine(CommonField.REMARK), "create_time", "update_time"
};
static String basePackage = "com.stark37125.core";
static String parentPackage = basePackage + ".modules.business";
static String url = "jdbc:postgresql://localhost:5432/password-evaluation";
static String username = "postgres";
static String password = "postgresql";
public static void main(String[] args) { String[] tableName = {"app_case_evaluation"}; String moduleName = "evaluation";
generator(tableName, moduleName);
}
private static void generator(String[] tableName, String moduleName) { String projectPath = System.getProperty("user.dir"); FastAutoGenerator.create(new DataSourceConfig.Builder(url, username, password).schema("public")) .globalConfig(builder -> { builder.author(getCurrentName()) .enableSwagger()
.outputDir(projectPath + "/src/main/java/") .dateType(DateType.ONLY_DATE) .disableOpenDir() ;
}) .packageConfig(builder -> { builder.parent(parentPackage) .moduleName(moduleName) .pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/src/main/resources/" + "/mapper/"+moduleName)) .mapper("dao") ; }) .strategyConfig(builder -> { builder.addInclude(tableName) .addTablePrefix("t_", "app_", "sys_") .entityBuilder().superClass(MyEntity.class).enableLombok().addIgnoreColumns(commonField) .controllerBuilder().superClass(MyController.class) .serviceBuilder().superServiceClass(MyService.class) .superServiceImplClass(MyServiceImpl.class) .mapperBuilder().superClass(MyMapper.class)
; }) .execute(); }
private static String getCurrentName() { try { Process pop = Runtime.getRuntime().exec("git config user.name"); InputStream inputStream = pop.getInputStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader br = new BufferedReader(inputStreamReader); String line; if ((line = br.readLine()) != null) { return line; } } catch (IOException e) { e.printStackTrace(); }
return ""; }
}
|