本文基于springboot集成mybatis-plus的基础上进行阐述
maven依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.3.1</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
代码生成器
public class MybatisPulsGenerator {
/**
* 数据库连接
*/
private static String url = "jdbc:mysql://127.0.0.1:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&useSSL=false&useTimezone=true&allowMultiQueries=true";
/**
* 数据库账号
*/
private static String username = "test";
/**
* 数据库密码
*/
private static String password = "test!";
/**
* 要生成的表名,多个用","隔开
*/
private static String tableNames = "sys_user,user_role";
/**
* 输出目录
*/
private static String outputDir = "F://mybatisPulsCode//";
/**
* 作者
*/
private static String author = "小花卷的Dad";
/**
* 要过滤的表前缀,多个用","隔开
*/
private static String tablePrefixs = "";
public static void main(String[] args) {
FastAutoGenerator.create(url, username, password)
.globalConfig(builder -> {
builder
.author(author) //设置作者
.enableSwagger() //开启swagger模式
.outputDir(outputDir); //指定输出目录
})
.dataSourceConfig(builder -> builder.typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> {
int typeCode = metaInfo.getJdbcType().TYPE_CODE;
if (typeCode == Types.SMALLINT) {
//自定义类型转换
return DbColumnType.INTEGER;
}
return typeRegistry.getColumnType(metaInfo);
}))
.packageConfig(builder -> {
builder.parent("") //设置父包名
.moduleName("") //设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.xml, outputDir)); //设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.addInclude(tableNames.split(",")) // 设置需要生成的表名
.addTablePrefix(tablePrefixs.split(",")) // 设置过滤表前缀
.entityBuilder() //entity配置
.enableFileOverride() //覆盖已生成文件
.enableLombok() //开启lombok模型
.disableSerialVersionUID() //禁用生成 serialVersionUID
.controllerBuilder() //controller配置
.enableRestStyle() //开启生成@RestController 控制器
.enableFileOverride() //覆盖已生成文件
.serviceBuilder() //service配置
.enableFileOverride() //覆盖已生成文件
.mapperBuilder() //mapper配置
.enableFileOverride(); //覆盖已生成文件
})
.templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}
}
更多配置参考:代码生成器配置新
根据实际情况配置好参数后,直接运行即可