package com.fwj.tool.generator;
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.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* <p>
* 代码生成器
* </p>
*
* @author shen_hs
* @since 2020-09-12
*/
public class Generator {
/**
* <p>
* 读取控制台内容
* </p>
*/
public static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入").append(tip).append(":");
System.out.println(help.toString());
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
/**
* RUN THIS
*/
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("fwj");
gc.setOpen(false);
// 设置名字
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setControllerName("%sController");
gc.setSwagger2(true); //实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setUrl("jdbc:mysql://47.95.3.181:3307/structure");
//dsc.setDbType(DbType.ORACLE_12C);
//dsc.setTypeConvert(new OracleTypeConvert());
//dsc.setSchemaName("public");
dsc.setUsername("root");
dsc.setPassword("123456");
mpg.setDataSource(dsc);
// 自定义配置
InjectionConfig cfg = new InjectionConfig() {
@Override
public void initMap() {
// to do nothing
}
};
// 包配置
PackageConfig pc = new PackageConfig();
//pc.setModuleName(scanner("模块名"));
pc.setModuleName(null);
pc.setParent("com.fwj");
mpg.setPackageInfo(pc);
// 如果模板引擎是 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/"
+ "/" + 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.setEntityLombokModel(true);
strategy.setRestControllerStyle(true);
// 写于父类中的公共字段
// strategy.setSuperEntityColumns("id");
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
strategy.setTablePrefix("_");
mpg.setStrategy(strategy);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
一个干净的springboot项目,已集成集成代码生成器(plus),分页插件,Knife4j(swagger2),统一返回值
共24个文件
java:17个
xml:2个
sql:1个
需积分: 4 0 下载量 10 浏览量
2023-03-14
17:13:25
上传
评论
收藏 21KB RAR 举报
温馨提示
一个干净的springboot项目,已集成集成代码生成器(plus),分页插件,Knife4j(swagger2),统一返回值,可以帮助你快速开发,后续集成更多基础代码。
资源推荐
资源详情
资源评论
收起资源包目录
springboot-structure.rar (24个子文件)
springboot-structure
pom.xml 2KB
src
main
resources
mapper
UserinfoMapper.xml 220B
application.yml 409B
db
userinfo.sql 1KB
java
com
fwj
Application.java 446B
mapper
UserinfoMapper.java 276B
tool
exception
ResponseModel.java 4KB
Error.java 717B
ErrorCode.java 1KB
CommonException.java 2KB
page
PageModel.java 3KB
generator
Generator.java 5KB
controller
UserinfoController.java 1KB
service
impl
UserinfoServiceImpl.java 2KB
UserinfoService.java 468B
entity
ro
UserinfoRo.java 613B
dto
UserinfoDto.java 384B
Userinfo.java 1010B
config
MyBatisPlusConfig.java 966B
WebMvcConfig.java 661B
Knife4jConfig.java 2KB
LICENSE 11KB
.gitignore 142B
springboot-structure.iml 9KB
共 24 条
- 1
资源评论
锦瑟不予
- 粉丝: 3
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功