From 9c86a5a4b4a5f49baa7ea633fff1ba6d2e67e377 Mon Sep 17 00:00:00 2001
From: liyanqi <15181887205@163.com>
Date: 星期三, 14 九月 2022 16:20:17 +0800
Subject: [PATCH] 修改自动生成代码工具
---
ycl-generator/pom.xml | 50 +++++++++
/dev/null | 5 -
ycl-generator/src/main/java/com/ycl/MysqlGenerator.java | 201 ++++++++++++++++++++++++++++++++++++++++
ycl-generator/src/main/java/com/ycl/base/BaseController.java | 12 ++
4 files changed, 260 insertions(+), 8 deletions(-)
diff --git a/ycl-generator/pom.xml b/ycl-generator/pom.xml
index ad07430..88b5a24 100644
--- a/ycl-generator/pom.xml
+++ b/ycl-generator/pom.xml
@@ -3,9 +3,10 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>com.ycl</groupId>
- <artifactId>ycl-server</artifactId>
- <version>1.0.0</version>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>2.7.0</version>
+ <relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ycl</groupId>
@@ -21,6 +22,49 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>mybatis-plus-generator</artifactId>
+ <version>3.3.2</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>mybatis-plus-boot-starter</artifactId>
+ <version>3.0-RELEASE</version>
+ </dependency>
+
+ <!--Hutool Java宸ュ叿鍖�-->
+ <dependency>
+ <groupId>cn.hutool</groupId>
+ <artifactId>hutool-all</artifactId>
+ <version>5.8.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>8.0.29</version>
+ </dependency>
+
+ <!--lombok渚濊禆-->
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <optional>true</optional>
+ </dependency>
+
+ <!-- freemarker 妯℃澘寮曟搸 -->
+ <dependency>
+ <groupId>org.freemarker</groupId>
+ <artifactId>freemarker</artifactId>
+ <version>2.3.23</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
diff --git a/ycl-generator/src/main/java/com/ycl/MyBatisPlusGenerator.java b/ycl-generator/src/main/java/com/ycl/MyBatisPlusGenerator.java
deleted file mode 100644
index ccd89f2..0000000
--- a/ycl-generator/src/main/java/com/ycl/MyBatisPlusGenerator.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package com.ycl;
-
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.setting.dialect.Props;
-import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
-import com.baomidou.mybatisplus.generator.AutoGenerator;
-import com.baomidou.mybatisplus.generator.config.*;
-import com.baomidou.mybatisplus.generator.config.po.LikeTable;
-import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery;
-import com.baomidou.mybatisplus.generator.config.rules.DateType;
-import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
-import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;
-
-import java.util.Collections;
-import java.util.Scanner;
-
-/**
- * MyBatisPlus浠g爜鐢熸垚鍣�
- * Created by macro on 2020/8/20.
- */
-public class MyBatisPlusGenerator {
-
- public static void main(String[] args) {
- String projectPath = System.getProperty("user.dir");
- String moduleName = scanner("妯″潡鍚�");
- String[] tableNames = scanner("琛ㄥ悕锛屽涓嫳鏂囬�楀彿鍒嗗壊").split(",");
- // 浠g爜鐢熸垚鍣�
- AutoGenerator autoGenerator = new AutoGenerator(initDataSourceConfig());
- autoGenerator.global(initGlobalConfig(projectPath));
- autoGenerator.packageInfo(initPackageConfig(projectPath,moduleName));
- autoGenerator.injection(initInjectionConfig(projectPath, moduleName));
- autoGenerator.template(initTemplateConfig());
- autoGenerator.strategy(initStrategyConfig(tableNames));
- autoGenerator.execute(new VelocityTemplateEngine());
- }
-
- /**
- * 璇诲彇鎺у埗鍙板唴瀹逛俊鎭�
- */
- private static String scanner(String tip) {
- Scanner scanner = new Scanner(System.in);
- System.out.println(("璇疯緭鍏�" + tip + "锛�"));
- if (scanner.hasNext()) {
- String next = scanner.next();
- if (StrUtil.isNotEmpty(next)) {
- return next;
- }
- }
- throw new MybatisPlusException("璇疯緭鍏ユ纭殑" + tip + "锛�");
- }
-
- /**
- * 鍒濆鍖栧叏灞�閰嶇疆
- */
- private static GlobalConfig initGlobalConfig(String projectPath) {
- return new GlobalConfig.Builder()
- .outputDir(projectPath + "/ycl-generator/src/main/java")
- .author("lyq")
- .disableOpenDir()
- .enableSwagger()
- .fileOverride()
- .dateType(DateType.ONLY_DATE)
- .build();
- }
-
- /**
- * 鍒濆鍖栨暟鎹簮閰嶇疆
- */
- private static DataSourceConfig initDataSourceConfig() {
- Props props = new Props("generator.properties");
- String url = props.getStr("dataSource.url");
- String username = props.getStr("dataSource.username");
- String password = props.getStr("dataSource.password");
- return new DataSourceConfig.Builder(url,username,password)
- .dbQuery(new MySqlQuery())
- .build();
- }
-
- /**
- * 鍒濆鍖栧寘閰嶇疆
- */
- private static PackageConfig initPackageConfig(String projectPath,String moduleName) {
- Props props = new Props("generator.properties");
- return new PackageConfig.Builder()
- .moduleName(moduleName)
- .parent(props.getStr("package.base"))
- .entity("entity")
- .pathInfo(Collections.singletonMap(OutputFile.mapperXml, projectPath + "/ycl-generator/src/main/resources/mapper/" + moduleName))
- .build();
- }
-
- /**
- * 鍒濆鍖栨ā鏉块厤缃�
- */
- private static TemplateConfig initTemplateConfig() {
- //鍙互瀵筩ontroller銆乻ervice銆乪ntity妯℃澘杩涜閰嶇疆
- return new TemplateConfig.Builder().build();
- }
-
- /**
- * 鍒濆鍖栫瓥鐣ラ厤缃�
- */
- private static StrategyConfig initStrategyConfig(String[] tableNames) {
- StrategyConfig.Builder builder = new StrategyConfig.Builder();
- builder.entityBuilder()
- .naming(NamingStrategy.underline_to_camel)
- .columnNaming(NamingStrategy.underline_to_camel)
- .enableLombok()
- .formatFileName("%s")
- .mapperBuilder()
- .enableBaseResultMap()
- .formatMapperFileName("%sMapper")
- .formatXmlFileName("%sMapper")
- .serviceBuilder()
- .formatServiceFileName("%sService")
- .formatServiceImplFileName("%sServiceImpl")
- .controllerBuilder()
- .enableRestStyle()
- .formatFileName("%sController");
- //褰撹〃鍚嶄腑甯�*鍙锋椂鍙互鍚敤閫氶厤绗︽ā寮�
- if (tableNames.length == 1 && tableNames[0].contains("*")) {
- String[] likeStr = tableNames[0].split("_");
- String likePrefix = likeStr[0] + "_";
- builder.likeTable(new LikeTable(likePrefix));
- } else {
- builder.addInclude(tableNames);
- }
- return builder.build();
- }
-
- /**
- * 鍒濆鍖栬嚜瀹氫箟閰嶇疆
- */
- private static InjectionConfig initInjectionConfig(String projectPath, String moduleName) {
- // 鑷畾涔夐厤缃�
- return new InjectionConfig.Builder().build();
- }
-
-}
\ No newline at end of file
diff --git a/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java b/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
new file mode 100644
index 0000000..8597c31
--- /dev/null
+++ b/ycl-generator/src/main/java/com/ycl/MysqlGenerator.java
@@ -0,0 +1,201 @@
+package com.ycl;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+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.TableFill;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+import com.ycl.base.BaseController;
+
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * @author Lyq
+ * @version 1.0
+ * @date 2022/9/14
+ */
+public class MysqlGenerator {
+ private static final String PN_ENTITY = "entity";
+ private static final String PN_CONTROLLER = "controller";
+ private static final String PN_MAPPER = "mapper";
+ private static final String PN_SERVICE = "service";
+ private static final String PN_SERVICE_IMPL = "impl";
+ private static final String PN_DELIMITER = ".";
+
+
+ /**
+ * <p>
+ * 璇诲彇鎺у埗鍙板唴瀹�
+ * </p>
+ */
+ public static String scanner(String tip) {
+ Scanner scanner = new Scanner(System.in);
+ StringBuilder help = new StringBuilder();
+ help.append("璇疯緭鍏�" + tip + "锛�");
+ System.out.println(help.toString());
+ if (scanner.hasNext()) {
+ String ipt = scanner.next();
+ if (StringUtils.isNotEmpty(ipt)) {
+ return ipt;
+ }
+ }
+ throw new MybatisPlusException("璇疯緭鍏ユ纭殑" + tip + "锛�");
+ }
+
+ public static void main(String[] args) {
+ // 浠g爜鐢熸垚鍣�
+ AutoGenerator mpg = new AutoGenerator();
+
+ // 鍏ㄥ眬閰嶇疆
+ GlobalConfig gc = new GlobalConfig();
+ String projectPath = System.getProperty("user.dir");
+ gc.setOutputDir(projectPath + "/ycl-generator/src/main/java");
+ gc.setAuthor("lyq");//浣滆��
+ gc.setBaseResultMap(true); //mapper.xml 鐢熸垚 ResultMap
+ gc.setBaseColumnList(true); //mapper.xml 鐢熸垚 ColumnList
+// gc.setSwagger2(true);
+ gc.setOpen(false);
+ // gc.setSwagger2(true); 瀹炰綋灞炴�� Swagger2 娉ㄨВ
+ // 鏄惁瑕嗙洊宸叉湁鏂囦欢
+ gc.setFileOverride(true);
+ mpg.setGlobalConfig(gc);
+
+ // 鏁版嵁婧愰厤缃�
+ DataSourceConfig dsc = new DataSourceConfig();
+ dsc.setUrl("jdbc:mysql://42.193.1.25:3306/sccg?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false");
+ // dsc.setSchemaName("public");
+ dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+ dsc.setUsername("root");
+ dsc.setPassword("321$YcYl@1970!");
+ mpg.setDataSource(dsc);
+
+ // 鍖呴厤缃�
+ PackageConfig pc = new PackageConfig();
+// pc.setModuleName(scanner("妯″潡鍚�"));
+ pc.setModuleName(null);
+ pc.setParent("com.ycl");
+ String packageName = scanner("璇疯緭鍏ュ寘鍚�");
+ //鑷畾涔夋墍鍦ㄥ寘鐨勫悕绉� 鍩烘湰娌″繀瑕�
+ pc.setEntity(PN_ENTITY + PN_DELIMITER + packageName);
+ pc.setController(PN_CONTROLLER + PN_DELIMITER + packageName);
+ pc.setMapper(PN_MAPPER + PN_DELIMITER + packageName);
+ pc.setService(PN_SERVICE + PN_DELIMITER + packageName);
+ pc.setServiceImpl(PN_SERVICE + PN_DELIMITER + packageName + PN_DELIMITER + PN_SERVICE_IMPL);
+
+ //pc.setMapper("com.cikers.ps.mapper");
+
+ mpg.setPackageInfo(pc);
+ // 鑷畾涔夐厤缃�
+ InjectionConfig cfg = new InjectionConfig() {
+ @Override
+ public void initMap() {
+ // to do nothing
+ }
+ };
+
+ // 濡傛灉妯℃澘寮曟搸鏄� freemarker
+ String templatePath = "/templates/mapper.xml.ftl";
+ // 濡傛灉妯℃澘寮曟搸鏄� velocity
+// String templatePath = "/templates/mapper.xml.vm";
+
+ // 鑷畾涔夎緭鍑洪厤缃�
+ List<FileOutConfig> focList = new ArrayList<>();
+ // 鑷畾涔夐厤缃細琚紭鍏堣緭鍑�
+ focList.add(new FileOutConfig(templatePath) {
+ @Override
+ public String outputFile(TableInfo tableInfo) {
+ // 鑷畾涔夎緭鍑烘枃浠跺悕 锛� 濡傛灉浣� Entity 璁剧疆浜嗗墠鍚庣紑銆佹澶勬敞鎰� xml 鐨勫悕绉颁細璺熺潃鍙戠敓鍙樺寲锛侊紒
+// return projectPath + "/coinyee-contract-generator/src/main/resources/mapper/" + pc.getModuleName()
+// + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+ return projectPath + "/ycl-generator/src/main/resources/mapper/"
+ + packageName + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+ }
+ });
+ /*
+ cfg.setFileCreate(new IFileCreate() {
+ @Override
+ public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
+ // 鍒ゆ柇鑷畾涔夋枃浠跺す鏄惁闇�瑕佸垱寤�
+ checkDir("璋冪敤榛樿鏂规硶鍒涘缓鐨勭洰褰曪紝鑷畾涔夌洰褰曠敤");
+ if (fileType == FileType.MAPPER) {
+ // 宸茬粡鐢熸垚 mapper 鏂囦欢鍒ゆ柇瀛樺湪锛屼笉鎯抽噸鏂扮敓鎴愯繑鍥� false
+ return !new File(filePath).exists();
+ }
+ // 鍏佽鐢熸垚妯℃澘鏂囦欢
+ return true;
+ }
+ });
+ */
+ cfg.setFileOutConfigList(focList);
+ mpg.setCfg(cfg);
+
+ // 閰嶇疆妯℃澘
+ TemplateConfig templateConfig = new TemplateConfig();
+
+ // 閰嶇疆鑷畾涔夎緭鍑烘ā鏉�
+ //鎸囧畾鑷畾涔夋ā鏉胯矾寰勶紝娉ㄦ剰涓嶈甯︿笂.ftl/.vm, 浼氭牴鎹娇鐢ㄧ殑妯℃澘寮曟搸鑷姩璇嗗埆
+ // templateConfig.setEntity("templates/entity2.java");
+ // templateConfig.setService();
+ // templateConfig.setController();
+
+ templateConfig.setXml(null);
+ mpg.setTemplate(templateConfig);
+
+ // 绛栫暐閰嶇疆
+ StrategyConfig strategy = new StrategyConfig();
+ strategy.setNaming(NamingStrategy.underline_to_camel);
+ //strategy.setSuperEntityClass("浣犺嚜宸辩殑鐖剁被瀹炰綋,娌℃湁灏变笉鐢ㄨ缃�!");
+ strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+ //鍘婚櫎瀛楁鍓嶇紑
+ strategy.setFieldPrefix("");
+
+ List<TableFill> tableFills = new ArrayList<>();
+
+ TableFill createTimeFill = new TableFill("createTime", FieldFill.INSERT);
+ TableFill modifiedTimeFill = new TableFill("modifiedTime", FieldFill.UPDATE);
+
+ tableFills.add(createTimeFill);
+ tableFills.add(modifiedTimeFill);
+
+// strategy.setEntityTableFieldAnnotationEnable(true);
+ strategy.setColumnNaming(NamingStrategy.underline_to_camel);
+ //strategy.setSuperEntityClass("浣犺嚜宸辩殑鐖剁被瀹炰綋,娌℃湁灏变笉鐢ㄨ缃�!");
+ strategy.setSuperControllerClass(BaseController.class);
+// strategy.setSuperEntityClass(BaseEntity.class);
+ strategy.setSuperEntityColumns("createTime", "lastModify", "isDeleted");
+ strategy.setTableFillList(tableFills);
+ strategy.setEntityBooleanColumnRemoveIsPrefix(false);
+ strategy.setLogicDeleteFieldName("isDeleted");
+
+ strategy.setVersionFieldName("version");
+ strategy.setEntityTableFieldAnnotationEnable(true);
+
+ strategy.setEntityLombokModel(true);
+ strategy.setRestControllerStyle(true);
+
+ strategy.setEntityLombokModel(true);
+ strategy.setRestControllerStyle(true);
+ // 鍏叡鐖剁被
+ // strategy.setSuperControllerClass("浣犺嚜宸辩殑鐖剁被鎺у埗鍣�,娌℃湁灏变笉鐢ㄨ缃�!");
+ // 鍐欎簬鐖剁被涓殑鍏叡瀛楁
+// strategy.setSuperEntityColumns("id");
+ String[] split = scanner("琛ㄥ悕锛屽涓嫳鏂囬�楀彿鍒嗗壊").split(",");
+ strategy.setInclude(split);
+ strategy.setControllerMappingHyphenStyle(true);
+// strategy.setTablePrefix(pc.getModuleName() + "_");
+ //鍘绘帀琛ㄥ墠缂�
+ strategy.setTablePrefix("ums_");
+ mpg.setStrategy(strategy);
+ mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+ mpg.execute();
+ }
+}
diff --git a/ycl-generator/src/main/java/com/ycl/base/BaseController.java b/ycl-generator/src/main/java/com/ycl/base/BaseController.java
new file mode 100644
index 0000000..117f23e
--- /dev/null
+++ b/ycl-generator/src/main/java/com/ycl/base/BaseController.java
@@ -0,0 +1,12 @@
+package com.ycl.base;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author Lyq
+ * @version 1.0
+ * @date 2022/9/14
+ */
+@RestController
+public class BaseController {
+}
diff --git a/ycl-generator/src/main/resources/generator.properties b/ycl-generator/src/main/resources/generator.properties
deleted file mode 100644
index 53b55d9..0000000
--- a/ycl-generator/src/main/resources/generator.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-dataSource.url=jdbc:mysql://42.193.1.25:3306/sccg?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=false
-dataSource.driverName=com.mysql.cj.jdbc.Driver
-dataSource.username=root
-dataSource.password=321$YcYl@1970!
-package.base=com.ycl
\ No newline at end of file
--
Gitblit v1.8.0