Last active
October 16, 2019 10:13
-
-
Save qlong8807/500ae495b7b49d3e6ce990af17208796 to your computer and use it in GitHub Desktop.
mybatis-plus自动生成entity、mapper、service、controller
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
springboot项目添加如下依赖: | |
<dependency> | |
<groupId>org.projectlombok</groupId> | |
<artifactId>lombok</artifactId> | |
<optional>true</optional> | |
</dependency> | |
<dependency> | |
<groupId>com.baomidou</groupId> | |
<artifactId>mybatis-plus-boot-starter</artifactId> | |
<version>3.2.0</version> | |
</dependency> | |
<!-- 代码生成jar包 --> | |
<dependency> | |
<groupId>com.baomidou</groupId> | |
<artifactId>mybatis-plus-generator</artifactId> | |
<version>3.2.0</version> | |
</dependency> | |
<!-- 模板引擎。可用volocity,freemarker,beetle... --> | |
<dependency> | |
<groupId>org.apache.velocity</groupId> | |
<artifactId>velocity-engine-core</artifactId> | |
<version>2.1</version> | |
</dependency> | |
<!-- 可选。生成的类中包含swagger --> | |
<dependency> | |
<groupId>io.springfox</groupId> | |
<artifactId>springfox-swagger2</artifactId> | |
<version>2.9.2</version> | |
</dependency> | |
<dependency> | |
<groupId>io.springfox</groupId> | |
<artifactId>springfox-swagger-ui</artifactId> | |
<version>2.9.2</version> | |
</dependency> | |
<dependency> | |
<groupId>oracle</groupId> | |
<artifactId>ojdbc6</artifactId> | |
<version>11.2.0</version> | |
</dependency> | |
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.*; | |
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; | |
import java.util.Scanner; | |
// 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 | |
public class CodeGenerator { | |
/** | |
* <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) { | |
// 代码生成器 | |
AutoGenerator mpg = new AutoGenerator(); | |
// 全局配置 | |
GlobalConfig gc = new GlobalConfig(); | |
String projectPath = System.getProperty("user.dir"); | |
gc.setOutputDir(projectPath + "/src/main/java"); | |
gc.setAuthor("zhangyilong"); | |
gc.setOpen(false); | |
gc.setSwagger2(true); //实体属性 Swagger2 注解 | |
gc.setServiceName("%sService");//可以设置各模块名字。%s为表名占位符。 | |
mpg.setGlobalConfig(gc); | |
// 数据源配置 | |
DataSourceConfig dsc = new DataSourceConfig(); | |
// dsc.setUrl("jdbc:mysql://localhost:3306/ant?useUnicode=true&useSSL=false&characterEncoding=utf8"); | |
// dsc.setSchemaName("public"); | |
// dsc.setDriverName("com.mysql.jdbc.Driver"); | |
dsc.setUrl("jdbc:oracle:thin:@10.254.0.110:1521:orcl"); | |
dsc.setDriverName("oracle.jdbc.driver.OracleDriver"); | |
dsc.setUsername("数据库用户名"); | |
dsc.setPassword("数据库密码"); | |
mpg.setDataSource(dsc); | |
// 包配置 | |
PackageConfig pc = new PackageConfig(); | |
// pc.setModuleName(scanner("模块名"));//可以用于设置不同的模块,例如需要把controller分开放到多个模块下 | |
// pc.setParent("com.ytkj.abims.dbservice"); | |
pc.setParent("com.ytkj.abims.dbservice"); | |
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.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.setSuperEntityClass("com.baomidou.ant.common.BaseEntity"); | |
strategy.setEntityLombokModel(true); | |
strategy.setRestControllerStyle(true); | |
// 公共父类 | |
// strategy.setSuperControllerClass("com.baomidou.ant.common.BaseController"); | |
// 写于父类中的公共字段 | |
strategy.setSuperEntityColumns("id"); | |
// 需要生成的表 BAGGAGE_BASKET,CHANNEL,DEVICE,MATCHING_RECORD,MATCHING_RECORD_DETAIL,SYS_PARAM,XRAY_IMAGE,XRAY_SYSTEM,XRAY_SYSTEM_CHANNEL,SYS_USER | |
strategy.setInclude(scanner("表名,多个英文逗号分割").split(",")); | |
strategy.setControllerMappingHyphenStyle(true); | |
// strategy.setTablePrefix(pc.getModuleName() + "_"); | |
mpg.setStrategy(strategy); | |
// mpg.setTemplateEngine(new FreemarkerTemplateEngine()); | |
mpg.execute(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment