- 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();