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