From 2b357e8624ec1b7c2181e0ff85e16d2e2a680676 Mon Sep 17 00:00:00 2001 From: zhenghuang <236220500@qq.com> Date: Tue, 19 May 2020 09:47:45 +0800 Subject: [PATCH] swagger mysql --- pom.xml | 8 +- .../controller/back/ActivityController.java | 11 ++ .../kiisoo/ic/service/ActivityService.java | 4 + .../com/kiisoo/ic/utils/CodeGenerator.java | 121 ++++++++++++++++++ 4 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/controller/back/ActivityController.java create mode 100644 src/main/java/com/kiisoo/ic/service/ActivityService.java create mode 100644 src/main/java/com/kiisoo/ic/utils/CodeGenerator.java diff --git a/pom.xml b/pom.xml index d58b9cb..5e8e8f7 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.kiisoo ic 1.0-SNAPSHOT - war + jar youke @@ -79,7 +79,11 @@ mybatis-plus-boot-starter 3.2.0 - + + com.baomidou + mybatis-plus-generator + 3.3.1 + org.mybatis.spring.boot mybatis-spring-boot-starter diff --git a/src/main/java/com/kiisoo/ic/controller/back/ActivityController.java b/src/main/java/com/kiisoo/ic/controller/back/ActivityController.java new file mode 100644 index 0000000..d420c1a --- /dev/null +++ b/src/main/java/com/kiisoo/ic/controller/back/ActivityController.java @@ -0,0 +1,11 @@ +package com.kiisoo.ic.controller.back; + +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Api(value = "后台活动接口", tags = {"后台活动接口"}) +@RequestMapping(value = "/back/activity") +public class ActivityController { +} diff --git a/src/main/java/com/kiisoo/ic/service/ActivityService.java b/src/main/java/com/kiisoo/ic/service/ActivityService.java new file mode 100644 index 0000000..d9fad4c --- /dev/null +++ b/src/main/java/com/kiisoo/ic/service/ActivityService.java @@ -0,0 +1,4 @@ +package com.kiisoo.ic.service; + +public interface ActivityService { +} diff --git a/src/main/java/com/kiisoo/ic/utils/CodeGenerator.java b/src/main/java/com/kiisoo/ic/utils/CodeGenerator.java new file mode 100644 index 0000000..2fd7309 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/utils/CodeGenerator.java @@ -0,0 +1,121 @@ +package com.kiisoo.ic.utils; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +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 org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 +public class CodeGenerator { + + /** + *

+ * 读取控制台内容 + *

+ */ + 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.isEmpty(ipt)) { + return ipt; + } + } + throw new MybatisPlusException("请输入正确的" + tip + "!"); + } + + public static void main(String[] args) { + // 代码生成器 + AutoGenerator mpg = new AutoGenerator(); + + // 全局配置 + GlobalConfig gc = new GlobalConfig(); + String projectPath = System.getProperty("user.dir"); + gc.setOutputDir(projectPath + "/src/main/java"); + gc.setAuthor("zheng"); + gc.setOpen(false); + gc.setIdType(IdType.AUTO); + // gc.setSwagger2(true); 实体属性 Swagger2 注解 + mpg.setGlobalConfig(gc); + + // 数据源配置 + DataSourceConfig dsc = new DataSourceConfig(); + dsc.setUrl("jdbc:mysql://106.15.109.152:3306/p2p?characterEncoding=utf8&allowMultiQueries=true&autoReconnect=true"); + // dsc.setSchemaName("public"); + dsc.setDriverName("com.mysql.jdbc.Driver"); + dsc.setUsername("root"); + dsc.setPassword("Bsd@2019"); + mpg.setDataSource(dsc); + + // 包配置 + PackageConfig pc = new PackageConfig(); + + pc.setModuleName(scanner("模块名")); + pc.setParent("com.kiisoo.ic"); + mpg.setPackageInfo(pc); + + // 自定义配置 + InjectionConfig cfg = new InjectionConfig() { + @Override + public void initMap() { + // to do nothing + } + }; + + // 模板引擎是 freemarker + String templatePath = "/templates/mapper.xml.ftl"; + + // 自定义输出配置 + 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.setFileOutConfigList(focList); + mpg.setCfg(cfg); + + // 配置模板 + TemplateConfig templateConfig = new TemplateConfig(); + + 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.ant.common.BaseEntity"); + strategy.setEntityLombokModel(true); + strategy.setRestControllerStyle(false); + // 公共父类 + strategy.setSuperControllerClass("com.kiisoo.ic.common.BaseController"); + // 写于父类中的公共字段 +// strategy.setSuperEntityColumns("id"); + strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); + strategy.setControllerMappingHyphenStyle(true); + //strategy.setTablePrefix(scanner("表前缀") + "_"); + mpg.setStrategy(strategy); + mpg.setTemplateEngine(new FreemarkerTemplateEngine()); + mpg.execute(); + } + +}