MybatisPlus代码生成器可以根据设计好数据库表,自动帮助我们完成对应表的controller层,service层,entiy层和mapper层的基础代码,简化开发
1)导入依赖
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.2</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.28</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency>
2)在启动引导类同包下创建代码生成器类CodeGenerator
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;import java.util.ArrayList;
import java.util.List;public class CodeGenerator {public static void main(String[] args) {String url = "jdbc:mysql://localhost:3306/agriculture?serverTimezone=UTC";String username = "root";String password = "513315";String module = ""; // 表示项目的模块名称String outPath = System.getProperty("user.dir") + "/" + module + "/src/main/java"; // 文件输出路径String parent = "com.fyt"; // 父包的名称String moduleName = ""; // 模块名称String entity = "entity";String mapper = "mapper";String service = "service";String serviceImpl = "service.Impl";String controller = "controller";String mapperXml = "mapper.xml";List<String> tables = new ArrayList<>();//添加需要生成的数据库表的代码tables.add("pasture");FastAutoGenerator.create(url, username, password)// 全局配置.globalConfig(builder -> {builder.author("fyt") // 设置作者.enableSwagger() // 开启 swagger 模式.fileOverride() // 覆盖已生成文件.outputDir(outPath) // 指定输出目录.disableOpenDir(); // 生成后不打开目录})// 包配置.packageConfig(builder -> {builder.parent(parent) // 设置父包名.moduleName(moduleName) // 设置父包模块名.entity(entity).mapper(mapper).service(service).serviceImpl(serviceImpl).controller(controller).xml(mapperXml);})// 策略配置.strategyConfig(builder -> {builder.addInclude(tables) // 设置需要生成的表名
// .addTablePrefix("t_", "c_"); // 设置过滤表前缀.entityBuilder() // 开启生成实体类.enableLombok() // 开启lombok模型.mapperBuilder() // 开启生成mapper.superClass(BaseMapper.class)
// .enableMapperAnnotation() // 开启mapper注解.formatMapperFileName("%sMapper") // 格式化mapper名称.formatXmlFileName("%sMapper") // 格式化xml的名称.serviceBuilder() // 开启生成service.formatServiceFileName("%sService") //格式化service接口文件名称.formatServiceImplFileName("%sServiceImpl").controllerBuilder() //开启controller生成.formatFileName("%sController").enableRestStyle();}).templateEngine(new VelocityTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板.execute();}
}
3)然后运行后就会发现项目中多了pasture表对应的各层代码。
4)成功生成后找到mapper包下的接口,在其加上@Mapper
5)插件推荐MybatisPlus