<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency>
public class CodeGenerator { public static void main(String[] args) { generator(); } private static void generator(){ FastAutoGenerator.create("jdbc:mysql://localhost:3306/ssmbuild?serverTimezone=GMT%2b8", "用户名", "密码") .globalConfig(builder -> { builder.author("小明") // 设置作者 .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir("E:\\新建文件夹\\spring-bishe-boot\\src\\main\\java\\"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.fen.springbisheboot") // 设置父包名 .moduleName("") // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.xml, "E:\\新建文件夹\\spring-bishe-boot\\src\\main\\resources\\mapper\\")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("sys_user") // 设置需要生成的表名 .addTablePrefix("sys_"); // 设置过滤表前缀 }) // .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } }
自定义controller层
package ${package.Controller}; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; import $!{package.Service}.$!{table.serviceName}; import ${package.Entity}.${entity}; import org.springframework.web.bind.annotation.RequestMapping; #if(${restControllerStyle}) import org.springframework.web.bind.annotation.RestController; #else import org.springframework.stereotype.Controller; #end #if(${superControllerClassPackage}) import ${superControllerClassPackage}; #end /** * <p> * $!{table.comment} 前端控制器 * </p> * * @author ${author} * @since ${date} */ #if(${restControllerStyle}) @RestController #else @Controller #end @RequestMapping("#if(${package.ModuleName})/${package.ModuleName}#end/#if(${controllerMappingHyphenStyle})${controllerMappingHyphen}#else${table.entityPath}#end") #if(${kotlin}) class ${table.controllerName}#if(${superControllerClass}) : ${superControllerClass}()#end #else #if(${superControllerClass}) public class ${table.controllerName} extends ${superControllerClass} { #else public class ${table.controllerName} { #end @Resource private ${table.serviceName} ${table.entityPath}Service; @PostMapping public Boolean save(@RequestBody ${entity} ${table.entityPath}) { return ${table.entityPath}Service.saveOrUpdate(${table.entityPath}); } @DeleteMapping("/{id}") public Boolean delete(@PathVariable Integer id) { return ${table.entityPath}Service.removeById(id); } @GetMapping public List<${entity}> findAll() { return ${table.entityPath}Service.list(); } @GetMapping("/{id}") public ${entity} findOne(@PathVariable Integer id) { return ${table.entityPath}Service.getById(id); } //分页 @GetMapping("/page") public Page<${entity}> findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize) { return ${table.entityPath}Service.page(new Page<>(pageNum, pageSize)); } } #end
private void generate() {
FastAutoGenerator.create("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2b8", "root", "P@ss123.")
.globalConfig(builder -> {
builder.author("qingxi") // 设置作者
// .enableSwagger() // 开启 swagger 模式
.fileOverride() // 覆盖已生成文件
.outputDir("/Users/qingxi/Code/qingxi/springboot/boot-mybatis/src/main/java/"); // 指定输出目录
})
.packageConfig(builder -> {
builder.parent("com.example.bootmybatis") // 设置父包名
.moduleName("") // 设置父包模块名
.pathInfo(Collections.singletonMap(OutputFile.mapperXml, "/Users/qingxi/Code/qingxi/springboot/boot-mybatis/src/main/resources/mapper/")); // 设置mapperXml生成路径
})
.strategyConfig(builder -> {
builder.entityBuilder().enableLombok();
builder.mapperBuilder().enableMapperAnnotation().build();
builder.controllerBuilder().enableHyphenStyle() // 开启驼峰转连字符
.enableRestStyle(); // 开启生成@RestController 控制器
builder.addInclude("t_user") // 设置需要生成的表名
.addTablePrefix("t_"); // 设置过滤表前缀
})
// .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
.execute();
}