MybatisPlus的代码生成器类_CodeGenerator
spirngboot整合mybatisPlus
1,pom.xml的jar包:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.12.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<!-- MyBatis-Plus从3.0.3之后移除了代码生成器与模板引擎的默认依赖,需要手动添加相关依赖 -->
<!-- generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.4.1</version>
</dependency>
<!-- freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
</dependency>
</dependencies>
2,CodeGenerator类:
package com.itxhy.utils;
import com.baomidou.mybatisplus.annotation.IdType;
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 com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
* 代码生成器
*/
public class CodeGenerator {
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
globalConfig
.setAuthor("itxhy@xxx")
.setOpen(false)
.setFileOverride(false)
.setIdType(IdType.AUTO)
.setBaseResultMap(true)
.setEntityName("%s")
.setServiceName("%sService");
mpg.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig
.setUrl("jdbc:mysql://localhost:3306/yourDB?serverTimezone=Asia/Shanghai&characterEncoding=UTF8")
.setDriverName("com.mysql.jdbc.Driver")
.setUsername("****")
.setPassword("****");
mpg.setDataSource(dataSourceConfig);
// 包名配置
PackageConfig packageConfig = new PackageConfig();
packageConfig
.setParent("com.itxhy")
.setPathInfo(getPathInfo())
.setEntity("entity")
.setController("controller")
.setXml("xml");
mpg.setPackageInfo(packageConfig);
// 模板配置
TemplateConfig templateConfig = new TemplateConfig();
templateConfig
.setEntity("/templates/entity.java")
.setXml("/templates/mapper.xml")
.setController("/templates/controller.java");
mpg.setTemplate(templateConfig);
// 策略配置
StrategyConfig strategyConfig = new StrategyConfig();
strategyConfig
.setNaming(NamingStrategy.underline_to_camel)
// .setSuperEntityClass("com.itxhy.entity.BaseEntity")
.setEntitySerialVersionUID(false)
.setEntityLombokModel(true)
.setRestControllerStyle(true)
.setSuperEntityColumns("id", "create_time")
.setInclude(scanner("表名,多个英文逗号分割").split(","))
.setControllerMappingHyphenStyle(true);
mpg.setStrategy(strategyConfig);
mpg.setTemplateEngine(new FreemarkerTemplateEngine());
mpg.execute();
}
/**
* 读取控制台内容
*/
private static String scanner(String tip) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入" + tip + ":");
if (scanner.hasNext()) {
String ipt = scanner.next();
if (StringUtils.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}
private static Map<String, String> getPathInfo() {
Map<String, String> pathInfo = new HashMap<>();
//src 路径前面加上 项目全名
pathInfo.put(ConstVal.ENTITY_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/java/com/itxhy/entity");
pathInfo.put(ConstVal.MAPPER_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/java/com/itxhy/mapper");
pathInfo.put(ConstVal.SERVICE_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/java/com/itxhy/service");
pathInfo.put(ConstVal.SERVICE_IMPL_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/java/com/itxhy/service/impl");
pathInfo.put(ConstVal.CONTROLLER_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/java/com/itxhy/controller");
pathInfo.put(ConstVal.XML_PATH, System.getProperty("user.dir") + "/springboot_mybatis_plus/src/main/resources/mapper");
return pathInfo;
}
}