MyBatis-Plus学习笔记(八) 代码自动生成器

  • AutoGenerator 是 MyBatis-Plus 的代码生成器
  • AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等模块的代码

一、新建一个类-编写代码自动生成配置

public class zhouDode {

    public static void main(String[] args) {

        //创建一个代码自动生成对象
        AutoGenerator mpg = new AutoGenerator();
        
    }

}

二、添加全局策略配置

GlobalConfig gc = new GlobalConfig();

String projectPath = System.getProperty("user.dir"); 

//生成文件的输出目录
gc.setOutputDir(projectPath+"/src/main/java"); 

//开发人员信息
gc.setAuthor("heelo");   

//是否打开输出目录                      
gc.setOpen(false);   

//是否覆盖已有文件                          
gc.setFileOverride(false);                     
    
//service的命名方式,%可去Service的I前缀,如:%sBusiness 生成 UserBusiness
gc.setServiceName("%sService");              
    
//指定生成的主键的ID类型
gc.setIdType(IdType.ID_WORKER);

//时间类型对应策略
gc.setDateType(DateType.ONLY_DATE);

//开启 swagger2 模式
gc.setSwagger2(true);


mpg.setGlobalConfig(gc);

三、添加数据源配置

通过此配置指定需要生成代码的具体数据库

DataSourceConfig dsc = new DataSourceConfig();

//驱动连接的url
dsc.setUrl("jdbc:mysql://localhost:3306/kuang_community&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8");

//驱动名
dsc.setDriverName("com.mysql.cj.jdbc.Driver");

//数据库连接用户名
dsc.setUsername("root");

//数据库连接密码
dsc.setPassword("123456");

//数据库类型,该类内置了常用的数据库类型(必填)
dsc.setDbType(DbType.MYSQL); 

mpg.setDataSource(dsc);

四、添加包的配置

包名配置,通过该配置,指定生成代码的包路径

PackageConfig pc = new PackageConfig();
    
//父包模块名
pc.setModuleName("blog"); 

//父包名 如果为空,下面的子包名必须写全;如果非空,下面仅写子包名即可
pc.setParent("com.zhou");

//Entity包名
pc.setEntity("entity"); 

//Mapper包名
pc.setMapper("mapper");

//Service包名
pc.setService("service"); 

//Controller包名
pc.setController("controller");

mpg.setPackageInfo(pc);

五、添加数据库表配置

StrategyConfig strategy = new StrategyConfig();

//需要包含的表名(与exclude二选一配置)
strategy.setInclude("blog_tags","course","links","sys_settings","user_record");
    
//数据库表映射到实体的命名策略
strategy.setNaming(NamingStrategy.underline_to_camel);

//数据库表字段映射到实体的命名策略, 未指定按照 naming 执行
strategy.setColumnNaming(NamingStrategy.underline_to_camel);

//实体是否为lombok模型(默认 false)
//3.3.2以下版本默认生成了链式模型,3.3.2以后,默认不生成,如有需要需开启 chainModel
strategy.setEntityLombokModel(true);
    
//逻辑删除属性名称
strategy.setLogicDeleteFieldName("deleted"); 
    
//自动填充配置
TableFill gmtCreate = new TableFill("gmt_create", FieldFill.INSERT);
TableFill gmtModified = new TableFill("gmt_modified", FieldFill.INSERT_UPDATE);

ArrayList<TableFill> tableFills = new ArrayList<>();
tableFills.add(gmtCreate); 
tableFills.add(gmtModified);
strategy.setTableFillList(tableFills);
    
// 乐观锁
strategy.setVersionFieldName("version");

//生成 @RestController 控制器
strategy.setRestControllerStyle(true);

//驼峰转连字符
strategy.setControllerMappingHyphenStyle(true);
    
mpg.setStrategy(strategy);

六、执行

mpg.execute(); 

 

上一篇:mybatis-plus-generator 逆向工程


下一篇:代码生成器