diff --git a/user-service/pom.xml b/user-service/pom.xml
index 3c41688..c717589 100644
--- a/user-service/pom.xml
+++ b/user-service/pom.xml
@@ -12,6 +12,12 @@
com.hp
nacos-client
0.0.1-SNAPSHOT
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+
+
com.hp
@@ -30,6 +36,42 @@
4.12
test
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.3.0
+
+
+ org.springframework.boot
+ spring-boot-starter
+
+
+
+
+
+ com.baomidou
+ mybatis-plus-generator
+ 3.3.0
+
+
+ org.freemarker
+ freemarker
+ 2.3.28
+
+
+
+ org.mybatis
+ mybatis-typehandlers-jsr310
+ 1.0.1
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+ 2.9.2
+
+
\ No newline at end of file
diff --git a/user-service/src/main/java/com/hp/user/generactor/CodeGeneractor.java b/user-service/src/main/java/com/hp/user/generactor/CodeGeneractor.java
new file mode 100644
index 0000000..533810b
--- /dev/null
+++ b/user-service/src/main/java/com/hp/user/generactor/CodeGeneractor.java
@@ -0,0 +1,156 @@
+package com.hp.user.generactor;
+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.converts.MySqlTypeConvert;
+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.*;
+
+public class CodeGeneractor {
+
+ /**
+ * 读取控制台内容
+ */
+ 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) {
+ /**
+ * 代码生成器
+ */
+ AutoGenerator mpg = new AutoGenerator();
+
+ /**
+ * 全局配置
+ */
+ GlobalConfig globalConfig = new GlobalConfig();
+ //生成文件的输出目录
+ String projectPath = System.getProperty("user.dir");
+ globalConfig.setOutputDir(projectPath + "/user-service/src/main/java");
+ //Author设置作者
+ globalConfig.setAuthor("王怡静");
+ //是否覆盖文件
+ globalConfig.setFileOverride(true);
+ //生成后打开文件
+ globalConfig.setOpen(false);
+ mpg.setGlobalConfig(globalConfig);
+
+ /**
+ * 数据源配置
+ */
+ DataSourceConfig dsc = new DataSourceConfig();
+// DataSourceConfigBean d = context.getBean(DataSourceConfigBean.class);
+ dsc.setUrl("jdbc:mysql://47.104.215.101:3366/user?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");
+ dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+ dsc.setUsername("dwtdev");
+ dsc.setPassword("dwtdev@2020");
+ mpg.setDataSource(dsc);
+
+ /**
+ * 包配置
+ */
+ PackageConfig pc = new PackageConfig();
+// pc.setModuleName(scanner("模块名"));
+ //父包名。如果为空,将下面子包名必须写全部, 否则就只需写子包名
+ pc.setParent("com.hp.user.test");
+ 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 focList = new ArrayList<>();
+ // 自定义配置会被优先输出
+ focList.add(new FileOutConfig(templatePath) {
+ @Override
+ public String outputFile(TableInfo tableInfo) {
+ // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+// return projectPath + "/user-service/src/main/resources/mapper/"+ pc.getModuleName()
+// + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+ return projectPath + "/user-service/src/main/resources/mapper/"
+ + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+ }
+ });
+ 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.setColumnNaming(NamingStrategy.underline_to_camel);
+// strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
+ strategy.setInclude("tb_station,r_customer_service_provider_enterprise".split(","));
+ //实体是否为lombok模型(默认 false)
+ strategy.setEntityLombokModel(true);
+ //生成 @RestController 控制器
+ strategy.setRestControllerStyle(true);
+ //设置自定义继承的Entity类全称,带包名
+ //strategy.setSuperEntityClass("com.jiangfeixiang.mpdemo.BaseEntity");
+ //设置自定义继承的Controller类全称,带包名
+ //strategy.setSuperControllerClass("com.jiangfeixiang.mpdemo.BaseController");
+ //设置自定义基础的Entity类,公共字段
+// strategy.setSuperEntityColumns("id");
+ //驼峰转连字符
+ strategy.setControllerMappingHyphenStyle(true);
+ //表名前缀
+// strategy.setTablePrefix(pc.getModuleName() + "_");
+ strategy.setTablePrefix("tb_","r_");
+ mpg.setStrategy(strategy);
+ mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+ mpg.execute();
+ }
+}
diff --git a/user-service/src/main/java/com/hp/user/generactor/GeneratorCodeTest.java b/user-service/src/main/java/com/hp/user/generactor/GeneratorCodeTest.java
new file mode 100644
index 0000000..b4ecf7a
--- /dev/null
+++ b/user-service/src/main/java/com/hp/user/generactor/GeneratorCodeTest.java
@@ -0,0 +1,160 @@
+package com.hp.user.generactor;
+
+import java.util.Scanner;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+
+import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
+import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.GlobalConfig;
+import com.baomidou.mybatisplus.generator.config.PackageConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.TemplateConfig;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
+
+//@SpringBootApplication
+//@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
+//@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
+//@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)加了这个会导致mapper注入不进去
+//@NacosPropertySource(dataId = "userdatasource", autoRefreshed = true)//为啥nacos中的配置只能是Properties
+public class GeneratorCodeTest {
+
+ 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) {
+
+// ConfigurableApplicationContext context = SpringApplication.run(
+// GeneratorCodeTest.class, args);
+ // 代码生成器
+ AutoGenerator mpg = new AutoGenerator();
+
+ // 全局配置
+ GlobalConfig gc = new GlobalConfig();
+ String projectPath = System.getProperty("user.dir");
+ gc.setOutputDir(projectPath + "/user-service/src/main/java");
+ gc.setAuthor("王怡静");
+ gc.setOpen(false);
+ gc.setServiceName("%sService");
+ gc.setServiceImplName("%sServiceImpl");
+ //实体属性 Swagger2 注解
+ gc.setSwagger2(false);
+ mpg.setGlobalConfig(gc);
+
+ // 数据源配置
+ DataSourceConfig dsc = new DataSourceConfig();
+// DataSourceConfigBean d = context.getBean(DataSourceConfigBean.class);
+ dsc.setUrl("jdbc:mysql://47.104.215.101:3366/user?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC");
+ dsc.setDriverName("com.mysql.cj.jdbc.Driver");
+ dsc.setUsername("dwtdev");
+ dsc.setPassword("dwtdev@2020");
+ mpg.setDataSource(dsc);
+
+ // 包配置
+ PackageConfig pc = new PackageConfig();
+// pc.setModuleName(scanner("模块名"));
+// pc.setParent("com.hp.user.test");
+// pc.setEntity("model.auto");
+// pc.setMapper("mapper.auto");
+// pc.setService("service");
+// pc.setServiceImpl("service.impl");
+// pc.setController(null);
+ 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 focList = new ArrayList<>();
+ // 自定义配置会被优先输出
+// focList.add(new FileOutConfig(templatePath) {
+// @Override
+// public String outputFile(TableInfo tableInfo) {
+// // 自定义输出文件名 , 如果你 Entity 设置了前后缀、此处注意 xml 的名称会跟着发生变化!!
+// return projectPath + "/src/main/resources/mapper/" + pc.getModuleName()
+// + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
+// }
+// });
+ /*
+ cfg.setFileCreate(new IFileCreate() {
+ @Override
+ public boolean isCreate(ConfigBuilder configBuilder, FileType fileType, String filePath) {
+ // 判断自定义文件夹是否需要创建
+ checkDir("调用默认方法创建的目录");
+ return false;
+ }
+ });
+ */
+// cfg.setFileOutConfigList(focList);
+// mpg.setCfg(cfg);
+
+ // 配置模板
+ TemplateConfig templateConfig = new TemplateConfig();
+
+
+ //控制 不生成 controller 空字符串就行
+ templateConfig.setController("");
+ templateConfig.setMapper("");
+ templateConfig.setService("");
+ templateConfig.setServiceImpl("");
+
+
+ // 配置自定义输出模板
+ //指定自定义模板路径,注意不要带上.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.setColumnNaming(NamingStrategy.underline_to_camel);
+ strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
+ strategy.setEntityLombokModel(true);
+ strategy.setRestControllerStyle(false);
+
+ strategy.setEntityLombokModel(true);
+ // 公共父类
+// strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController");
+ // 写于父类中的公共字段
+// strategy.setSuperEntityColumns("id");
+// strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));tb_station
+ strategy.setInclude("tb_station,r_customer_service_provider_enterprise".split(","));
+ strategy.setTablePrefix("tb_","r_");
+ strategy.setControllerMappingHyphenStyle(true);
+// strategy.setTablePrefix(pc.getModuleName() + "_");
+ mpg.setStrategy(strategy);
+ mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+ mpg.execute();
+ }
+}
\ No newline at end of file
diff --git a/user-service/src/main/java/com/hp/user/service/UserServiceApplaction.java b/user-service/src/main/java/com/hp/user/service/UserServiceApplaction.java
index f664661..34a2624 100644
--- a/user-service/src/main/java/com/hp/user/service/UserServiceApplaction.java
+++ b/user-service/src/main/java/com/hp/user/service/UserServiceApplaction.java
@@ -21,9 +21,5 @@ public class UserServiceApplaction {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplaction.class, args);
-
-
}
-
-
}