代码自动生成器
dao、pojo、service、controller都给我自己去编写完成!
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、
Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。
安装依赖:
<!--代码生成器依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.28</version>
<scope>compile</scope>
</dependency>
测试:
package com.itheibai;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import com.baomidou.mybatisplus.generator.fill.Column;
import java.util.Collections;
/**
* 代码生成器
*/
public class ItheibaiCode {
public static void main(String[] args) {
//获取项目路径
String projectPath = System.getProperty("user.dir");
// 需要构建一个 代码自动生成器 对象
FastAutoGenerator.create("jdbc:mysql://localhost:3306/mybatis_plus?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8",
"root",
"123456")
.globalConfig(builder -> {
builder.author("itheibai") // 作者名
//.enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.commentDate("yyyy-MM-dd") // 注释日期
.outputDir(projectPath + "/src/main/java"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.itheibai") // 父包名
.moduleName("sys") // 父包模块名,生成的代码在这个包下
.entity("pojo") // Entity 包名
.service("service") // Service 包名
.serviceImpl("service.impl") // Service Impl 包名
.mapper("dao") // mapper 包名
.xml("mapper") // Xml 包名,默认包名 mapper.xml
.controller("controller") // Controller 包名
.other("other") // other 包名
.pathInfo(Collections.singletonMap(OutputFile.mapper,projectPath + "/src/main/java/com/itheibai/sys/dao")) // 配置mapper生成路径
.pathInfo(Collections.singletonMap(OutputFile.mapperXml,projectPath + "/src/main/resources/mapper")); // 配置mapper.xml生成路径,springboot会默认扫描
})
.strategyConfig(builder -> {
builder.addInclude("t_user_pojo") // 增加表匹配
.addTablePrefix("t_") // 过滤表前缀,如:生成的实体类名UserPojo
.entityBuilder()
.disableSerialVersionUID() // 禁用生成
.enableLombok()
.enableTableFieldAnnotation() // 开启生成实体时生成字段注解
.versionColumnName("version") // 乐观锁字段名(数据库)
.versionPropertyName("version") // 乐观锁属性名(实体)
.logicDeleteColumnName("deleted") // 逻辑删除字段名(数据库)
.logicDeletePropertyName("deleted") // 逻辑删除属性名(实体)
.addIgnoreColumns("age") // 添加忽略字段
.addTableFills(new Column("create_time", FieldFill.INSERT))
.addTableFills(new Column("update_time",FieldFill.INSERT_UPDATE))
.idType(IdType.AUTO) // 全局主键类型
.serviceBuilder()
//.superServiceClass(BaseService.class) // 设置接口类的父类
//.superServiceImplClass(BaseServiceImpl.class) // 设置接口实现类的父类
.formatServiceFileName("%sService") // 格式化Service接口文件名称
.formatServiceImplFileName("%sServiceImpl") // 格式化 ServiceImpl 实现类文件名称
.mapperBuilder()
.superClass(BaseMapper.class) // 设置mapper接口的父类
.enableMapperAnnotation() // 开启 @mapper 注解
.formatMapperFileName("%sDao") // 格式化 mapper 文件名称
.controllerBuilder()
.enableRestStyle(); // 开启生成 @RestController
})
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}
生成的目录结构
评论前必须登录!
注册