1、引入依赖
<!--引入mybatis-plus代码生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<!-- 代码生成器模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
2、创建CodeGenerator类
package com.wsh.serveruser;
import com.baomidou.mybatisplus.annotation.IdType;
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.rules.NamingStrategy;
/**
* @author wsh
* @create 2020-01-11 9:53
*/
public class CodeGenerator {
public static void main(String[] args) {
String schemaName = "aas";
// 表名,多个英文逗号分割
String tableName = "admin_user";
String url = "jdbc:mysql://localhost:3306/aas?characterEncoding=utf8&useUnicode=true&serverTimezone=UTC";
String driverName = "com.mysql.cj.jdbc.Driver";
String userName = "root";
String password = "123456";
String author = "wsh";
String entityPath = "com.wsh.serveruser.entity";
String controllerPath = "com.wsh.serveruser.controller";
String servicePath = "com.wsh.serveruser.service";
String serviceImplPath = "com.wsh.serveruser.service.impl";
String mapperXmlPath = "com.wsh.serveruser.dao.aas";
String mapperPath = "com.wsh.serveruser.dao.aas.mapper";
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
// 生成文件的输出目录
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
// 是否打开输出目录,默认true
gc.setOpen(false);
// 是否覆盖已有文件,默认false
gc.setFileOverride(true);
// 是否在xml中添加二级缓存配置,默认false
gc.setEnableCache(false);
// 开发者
gc.setAuthor(author);
// 开启 swagger2 模式,默认false
gc.setSwagger2(true);
// 开启 BaseResultMap,默认false
gc.setBaseResultMap(true);
// 指定生成的主键的ID类型,默认null
gc.setIdType(IdType.AUTO);
gc.setEntityName("%s");
gc.setControllerName("%sController");
gc.setServiceName("%sService");
gc.setServiceImplName("%sServiceImpl");
gc.setMapperName("%sMapper");
gc.setXmlName("%sMapper");
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setSchemaName(schemaName);
dsc.setUrl(url);
dsc.setDriverName(driverName);
dsc.setUsername(userName);
dsc.setPassword(password);
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("")
.setMapper(mapperPath)
.setService(servicePath)
.setServiceImpl(serviceImplPath)
.setController(controllerPath)
.setEntity(entityPath)
.setXml(mapperXmlPath);
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
// 表名生成策略(下划线转驼峰命名)
strategy.setNaming(NamingStrategy.underline_to_camel);
// 列名生成策略(下划线转驼峰命名)
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 是否生成实体时,生成字段注解
strategy.setEntityTableFieldAnnotationEnable(true);
// 是否启动Lombok配置
strategy.setEntityLombokModel(true);
// 是否启动REST风格配置
strategy.setRestControllerStyle(true);
// 自定义实体父类
// strategy.setSuperEntityClass("com.baomidou.mybatisplus.extension.activerecord.Model");
// 自定义controller父类
// strategy.setSuperControllerClass("pro.nbbt.base.controller.BaseController");
// 自定义service父接口
// strategy.setSuperServiceClass("com.baomidou.mybatisplus.extension.service.IService");
// 自定义service实现类
// strategy.setSuperServiceImplClass("com.baomidou.mybatisplus.extension.service.impl.ServiceImpl");
// 自定义mapper接口
// strategy.setSuperMapperClass("com.baomidou.mybatisplus.core.mapper.BaseMapper");
// 自定义基础的Entity类,公共字段
// strategy.setSuperEntityColumns("user_id");
// 表名
strategy.setInclude(tableName);
mpg.setStrategy(strategy);
// 执行
mpg.execute();
}
}