import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
/**
* 自动生成
*/
public class GeneratorMybatisPlus {
public static void main(String[] args) {
// 代码生成器
AutoGenerator autoGenerator = new AutoGenerator();
// 全局配置
GlobalConfig globalConfig = new GlobalConfig();
//生成文件的输出目录
String newPath = System.getProperty("user.dir");
globalConfig.setOutputDir(newPath+"/src/main/java");
// Author设置作者
globalConfig.setAuthor("mybatis-plus");
// 文件覆盖
globalConfig.setFileOverride(true);
// mapper生成字段的映射
globalConfig.setBaseResultMap(true);
globalConfig.setSwagger2(true);
// 生成后打开文件
globalConfig.setOpen(false);
// 自定义文件名风格,%s自动填充表实体属性
globalConfig.setMapperName("%sMapper");
globalConfig.setXmlName("%sMapper");
globalConfig.setServiceName("%sService");
globalConfig.setServiceImplName("%sServiceImpl");
globalConfig.setEntityName("%s");
globalConfig.setControllerName("%sController");
autoGenerator.setGlobalConfig(globalConfig);
// 数据源配置
DataSourceConfig dataSourceConfig = new DataSourceConfig();
dataSourceConfig.setDbType(DbType.MYSQL);
dataSourceConfig.setTypeConvert(new MySqlTypeConvert());
dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/test?tinyInt1isBit=false");
dataSourceConfig.setDriverName("com.mysql.jdbc.Driver");
dataSourceConfig.setUsername("test");
dataSourceConfig.setPassword("test");
autoGenerator.setDataSource(dataSourceConfig);
// 包名配置
PackageConfig packageConfig = new PackageConfig();
// 父包和子包名分开处理
packageConfig.setParent("com.test");
packageConfig.setController("web");
packageConfig.setEntity("domain");
packageConfig.setMapper("dao");
packageConfig.setService("service");
packageConfig.setServiceImpl("service.impl");
packageConfig.setXml("dao.mapper");
autoGenerator.setPackageInfo(packageConfig);
// 生成策略配置
StrategyConfig strategy = new StrategyConfig();
//设置命名格式
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
// 实体是否为lombok模型,默认 false
strategy.setEntityLombokModel(true);
//生成 @RestController 控制器
strategy.setRestControllerStyle(true);
// 继承类
strategy.setSuperEntityClass("com.test.ex.BaseEntity");
// 驼峰转连字符
strategy.setControllerMappingHyphenStyle(true);
// 要生成的表名(多个表用,隔开)
strategy.setInclude("test".split(",")); //将要生成文件的表名, 每次修改
// 生成的类名去掉前缀 如yw_sys_user ---> SysUser
//String[] tablePre = new String[]{"hbfw_"};
//strategy.setTablePrefix(tablePre);
autoGenerator.setStrategy(strategy);
// 执行,以上相关参数可以基于动态输入获取
//使用时放开注释
//autoGenerator.execute();
}
}
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.time.LocalDateTime;
@ApiModel("基于实体对象,包含4要素审计字段")
@Data
@ToString
public class BaseEntity {
/**
* 主键
*/
@ApiModelProperty(required = true, notes = "主键", dataType = "Long")
@TableId(value = "ID", type = IdType.ASSIGN_ID)
private Long id;
/**
* 版本号
*/
@Version
@TableField(value = "version_no", fill = FieldFill.INSERT)
private Integer versionNo;
/**
* 创建人
*/
@ApiModelProperty(required = true, notes = "审计字段:创建人")
@TableField(value = "CREATOR", fill = FieldFill.INSERT)
private String creator;
/**
* 创建时间
*/
@ApiModelProperty(required = true, notes = "审计字段:创建时间")
@TableField(value = "CREATE_TIME", fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* 修改人
*/
@ApiModelProperty(required = false, notes = "审计字段:修改人")
@TableField(value = "updater", fill = FieldFill.INSERT_UPDATE)
private String updater;
/**
* 修改时间
*/
@ApiModelProperty(required = false, notes = "审计字段:修改时间")
@TableField(value = "update_Time",fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}
|