Skip to content

代码生成

快速开始章节中,通过如下继承关系:

java
public class StudentController extends BaseController<Student> {}
public class StudentService extends BaseService<Student> {}
public class StudentServiceImpl extends BaseServiceImpl<StudentMapper, Student> implements StudentService {}
public class StudentMapper extends BaseMapper<Student> {}

快速实现了标准Rest接口的接口定义(controller中)和实现(service中)。

可能很多模块都是这么继承的,因此FastCrud提供了另一个maven构件——fast-crud-auto-generator, 借助Mybatis-plus代码生成器的能力, 生成这面提到的这些类。

WARNING

fast-crud-auto-generator完全是可选的,如果你的代码类组织形式较为相似,建议使用。

添加依赖

xml

<dependency>
    <groupId>io.github.pengxianggui</groupId>
    <artifactId>fast-crud-auto-generator</artifactId>
    <version>${fast-crud.version}</version>
</dependency>

自定义main方法——代码生成程序入口

java
public class CodeGenerator {
    public static void main(String[] args) {
        CodeAutoGenerator.builder()
                .module("demo") // 项目为maven多模块时, 指定是哪个模块 
                .author("pengxg") // 生成类的@author
                .url("jdbc:mysql://127.0.0.1:3306/fast-crud") // 数据库地址
                .username("root") // 数据库账号
                .password("xxxxxx") // 数据库密码
                .parentPkg("io.github.pengxianggui.crud.demo") // 生成的类文件所在的根包路径
                .entitySuperClass(BaseEntity.class) // 实体类继承父类: 很多时候针对id, createTime等字段会放到一个基础实体类里。不需要时此行注释。
                .build()
                .generate();
    }

每次需要针对某个表——如:student, 新建StudentControllerStudentServiceStudentServiceImplStudentStudentMapper时,即可执行上面的main方法。

交互式按需生成

img_17

stu代表生成的类文件将放在stu包下, 例如StudentController放在io.github.pengxianggui.crud.demo.controller.stu包下, 其它类文件同理。