环境说明

步骤说明

pom.xml

<!-- mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!-- mybatis plus generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.3</version>
</dependency>

CodeGenerator

package cn.axinblog;

import java.util.Scanner;

import cn.axinblog.utils.StringUtils;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

/**
* Mybatis Plus Code Generator
* 使用时先修改下面数据库连接信息
*/
public class CodeGenerator {

public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();

// 全局配置
GlobalConfig gc = new GlobalConfig();
String userHomePath = System.getProperty("user.dir");
String projectPath = "\\路径";
// 输出目录
gc.setOutputDir(userHomePath + projectPath + "/src/main/java");
// 生成注释时的作者
gc.setAuthor("Red");
// 开启Swagger
gc.setSwagger2(true);
// 是否覆蓋已有文件 默认值:false 备注:第二次生成会把第一次生成的覆盖掉
gc.setFileOverride(true);
// 生成的service接口名字首字母是否为I
gc.setServiceName("%sService");
// 生成resultMap
gc.setBaseResultMap(true);
// 是否打开输出目录 默认值:true
gc.setOpen(false);
// 开启 ActiveRecord 模式 默认值:false
gc.setActiveRecord(true);
mpg.setGlobalConfig(gc);

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://192.168.10.10:3306/数据库?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("homestead");
dsc.setPassword("secret");
mpg.setDataSource(dsc);

// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("cn.axinblog");
pc.setModuleName("business");
pc.setController("controller");
pc.setEntity("entity");
pc.setMapper("mapper");
pc.setService("service");
pc.setServiceImpl("service.impl");
mpg.setPackageInfo(pc);

// 配置自定义输出模板 指定自定义模板路径,注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
TemplateConfig templateConfig = new TemplateConfig();
templateConfig.setEntity("templates/entity.java");
// templateConfig.setService();
// templateConfig.setController();
// 控制不生成 controller 文件
templateConfig.setController(null);
// 控制不生成 xml 文件
templateConfig.setXml(null);
mpg.setTemplate(templateConfig);

// 策略配置
StrategyConfig strategy = new StrategyConfig();
// 表名生成策略(下划线转驼峰)
strategy.setNaming(NamingStrategy.underline_to_camel);
// 字段名生成策略(下划线转驼峰)
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 使用lombok实体模型 默认值:false
strategy.setEntityLombokModel(true);
// 生成 @RestController 控制器
strategy.setRestControllerStyle(false);
// 公共Entity类父类
strategy.setSuperEntityClass("cn.axinblog.base.entity.BaseEntity");
// 公共控制器父类
// strategy.setSuperControllerClass("你自己的父类控制器,没有就不用设置!");
// 写于父类中的公共字段
// strategy.setSuperEntityColumns("id");
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
strategy.setControllerMappingHyphenStyle(true);
// 表名前缀
strategy.setTablePrefix(pc.getModuleName() + "_");
mpg.setStrategy(strategy);

// 执行操作
mpg.execute();
System.out.println("======= Mybatis Plus Generator Done ========");
}

/**
* <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.isNotBlank(ipt)) {
return ipt;
}
}
throw new MybatisPlusException("请输入正确的" + tip + "!");
}

}

问题解决

’AutoGenerator()‘ has private access in ‘com.baomidou.mybatisplus.generator.AutoGenerator’

<!-- mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!-- mybatis plus generator -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.0</version>
</dependency>

pom.xmlmybatis-Plus 依赖版本是 3.3.2
应该是版本不兼容问题,把mybatis-plus-generator依赖换成 3.3.2

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.3.2</version>
</dependency>

Loading class `com.mysql.jdbc.Driver’. This is deprecated.

错误详细

Loading classcom.mysql.jdbc.Driver’. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDriverName("com.mysql.jdbc.Driver");

改为以下

// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setDriverName("com.mysql.cj.jdbc.Driver");

参考文献

代码生成器(旧)

代码生成器配置旧