需要依赖:
<!--mybatis baomidou-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.2.0</version>
</dependency>
<!--mybatis-plus 在3.0.3之后把代码生成器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.2.0</version>
</dependency>
<!-- 为代码生成添加模板引擎依赖,mybatis-plus代码生成必需要模板引擎,默认是 Velocity -->
<!-- 模板引擎 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.30</version>
</dependency>
使用默然模板生成代码:
package com.wxj.bootmq.genecode;
import com.baomidou.mybatisplus.annotation.DbType;
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;
/**
* mybatis-plus 代码生成器
* 基本配置:
* 数据源配置
* 策略配置
* 模板配置
* 全局策略配置
* 包名配置
* 注入配置
*/
public class MysqlGenerator extends GeneratorRun{
public static void main(String[] args) {
int scannerResult = scanner();
//代码生成器
AutoGenerator gene = new AutoGenerator();
/**
* 数据源基本配置
*/
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUsername("root");
dsc.setPassword("root");
dsc.setDbType(DbType.MYSQL);//必须
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUrl("jdbc:mysql://localhost:3306/test?characterEncoding=utf-8&useSSL=false&serverTimezone=UTC");
/*dsc.setTypeConvert(new MySqlTypeConvert(){
// 自定义数据库表字段类型转换【可选】
@Override
public DbColumnType processTypeConvert(String fieldType) {
System.out.println("转换类型:" + fieldType);
return super.processTypeConvert(fieldType);
}
});*/
gene.setDataSource(dsc);
/**
* 设置生成代码的全局配置
*/
GlobalConfig gconfig =new GlobalConfig();
gconfig.setOutputDir("F:\\workspace\\springbootmq\\src\\main\\java"); //生成文件输出目录
gconfig.setFileOverride(true); //是否覆盖已有文件,默认false
gconfig.setOpen(true); //是否打开输出目录,默认为true
gconfig.setEnableCache(true); //是否在xml中添加二级缓存配置,默认false
gconfig.setAuthor("wxj"); //开发者
gconfig.setSwagger2(true); //是否开启swagger2模式
gconfig.setBaseResultMap(true); //xml是否需要BaseResultMap
gconfig.setBaseColumnList(true); //xml是否显示字段
gconfig.setControllerName("%sController");
gconfig.setServiceName("%sService");
gconfig.setServiceImplName("%sServiceImpl");
gconfig.setMapperName("%sMapper");
gconfig.setXmlName("%sMapper");
gconfig.setIdType(IdType.AUTO);
gene.setGlobalConfig(gconfig);
/**
* 包配置
*/
PackageConfig pc = new PackageConfig();
pc.setParent("com.wxj.bootmq.genecode");
pc.setEntity("bo");
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setMapper("dao");
pc.setXml("dao.mapper");
gene.setPackageInfo(pc);
/**
* 策略配置
*/
StrategyConfig sc = new StrategyConfig();
sc.setTablePrefix();
sc.setNaming(NamingStrategy.underline_to_camel);
sc.setEntityBuilderModel(true);
sc.setEntityLombokModel(true);
sc.setInclude(new String[]{"COURSE","DATASOURCE"});//如果想要生成指定table代码
gene.setStrategy(sc);
gene.execute();
}
}