@@ -12,6 +12,12 @@ | |||
<groupId>com.hp</groupId> | |||
<artifactId>nacos-client</artifactId> | |||
<version>0.0.1-SNAPSHOT</version> | |||
<exclusions> | |||
<exclusion> | |||
<groupId>org.mybatis.spring.boot</groupId> | |||
<artifactId>mybatis-spring-boot-starter</artifactId> | |||
</exclusion> | |||
</exclusions> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.hp</groupId> | |||
@@ -30,6 +36,42 @@ | |||
<version>4.12</version> | |||
<scope>test</scope> | |||
</dependency> | |||
<!-- mybatis plus 代码生成器 --> | |||
<dependency> | |||
<groupId>com.baomidou</groupId> | |||
<artifactId>mybatis-plus-boot-starter</artifactId> | |||
<version>3.3.0</version> | |||
<exclusions> | |||
<exclusion> | |||
<groupId>org.springframework.boot</groupId> | |||
<artifactId>spring-boot-starter</artifactId> | |||
</exclusion> | |||
</exclusions> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.baomidou</groupId> | |||
<artifactId>mybatis-plus-generator</artifactId> | |||
<version>3.3.0</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.freemarker</groupId> | |||
<artifactId>freemarker</artifactId> | |||
<version>2.3.28</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.mybatis</groupId> | |||
<artifactId>mybatis-typehandlers-jsr310</artifactId> | |||
<version>1.0.1</version> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.fasterxml.jackson.datatype</groupId> | |||
<artifactId>jackson-datatype-jsr310</artifactId> | |||
<version>2.9.2</version> | |||
</dependency> | |||
</dependencies> | |||
</project> |
@@ -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<FileOutConfig> 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(); | |||
} | |||
} |
@@ -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<FileOutConfig> 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(); | |||
} | |||
} |
@@ -21,9 +21,5 @@ public class UserServiceApplaction { | |||
public static void main(String[] args) { | |||
SpringApplication.run(UserServiceApplaction.class, args); | |||
} | |||
} |