Mybatis-Plus逆向工程之代码生成器

代码生成器
  1. 代码生成器根据表把代码生成出来(逆向工程)
  2. 代码生成器本身就是一个工具,最终不需要部署给别人去用,只是在开发中用它生成一些代码,故可以放在src-test-java,test中的代码不会进行打包
CodeGenerator类
  1. 创建代码生成器

    	AutoGenerator mpg = new AutoGenerator();
    
  2. 全局配置

        GlobalConfig gc = new GlobalConfig();
        System.getProperty("user.dir") // 得到当前文件夹的路径,有时得到的路径可能出现问题,建议把路径写成绝对路径
        gc.setOutputDir(System.getProperty("user.dir") + "/src/main/java");
        gc.setOutputDir("E:\\work\\guli_parent\\service\\service_edu" + "/src/main/java"); // 生成代码的输出目录
        gc.setFileOverride(false); // 重新生成时文件是否覆盖
        gc.setIdType(IdType.ID_WORKER); // 主键策略
        gc.setDateType(DateType.ONLY_DATE); // 定义生成的实体类中日期类型
        gc.setSwagger2(true); // 开启Swagger2模式
        mpg.setGlobalConfig(gc);
    
  3. 数据源配置

        DataSourceConfig dsc = new DataSourceConfig(); // 代码生成器要单独配置数据库
        mpg.setDataSource(dsc);
    
  4. 包配置

        PackageConfig pc = new PackageConfig();
        pc.setModuleName("eduservice"); //模块名
        pc.setParent("com.atguigu"); // 包 com.atguigu.eduservice
        pc.setController("controller"); // 包 com.atguigu.eduservice.controller
        pc.setEntity("entity");
        pc.setService("service");
        pc.setMapper("mapper");
        mpg.setPackageInfo(pc);
    
  5. 策略配置

        strategy.setInclude("edu_teacher"); // 加上表的名称,如有多张表,用','隔开
        StrategyConfig strategy = new StrategyConfig();
        mpg.setStrategy(strategy);
    
  6. 执行

    	mpg.execute();
    
代码生成器生成的代码
  1. entity/EduTeacher

        @Data
        @EqualsAndHashCode(callSuper = false)
        @Accessors(chain = true)
        @ApiModel(value="EduTeacher对象", description="讲师")
        public class EduTeacher implements Serializable {
    
            private static final long serialVersionUID = 1L;
    
            @ApiModelProperty(value = "讲师ID")
            @TableId(value = "id", type = IdType.ID_WORKER_STR)
            private String id;
    
            @ApiModelProperty(value = "讲师姓名")
            private String name;
    
            ...
    
            @ApiModelProperty(value = "逻辑删除 1(true)已删除, 0(false)未删除")
            private Boolean isDeleted;
    
            @ApiModelProperty(value = "创建时间")
            private Date gmtCreate;
    
            @ApiModelProperty(value = "更新时间")
            private Date gmtModified;
        }
    
  2. mapper/EduTeacherMapper

    接口

        public interface EduTeacherMapper extends BaseMapper<EduTeacher> {
        }
    

    xml(mapper/xml/EduTeacherMapper.xml),可以在mapper中定义一个接口,然后xml中写SQL

        <mapper namespace="com.atguigu.eduservice.mapper.EduTeacherMapper">
        </mapper>
    
  3. service/EduTeacherService

    接口

        public interface EduTeacherService extends IService<EduTeacher> {
        }
    

    实现类(service/impl/EduTeacherServiceImpl)

        @Service
        public class EduTeacherServiceImpl extends ServiceImpl<EduTeacherMapper, EduTeacher> implements EduTeacherService {
        }
    
  4. controller/EduTeacherController

        @RestController
        @RequestMapping("/eduservice/teacher")
        public class EduTeacherController {
        }
    

你可能感兴趣的:(Mybatis-Plus,谷粒学院项目,java,mybatis)