1、依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version> <exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-annotation</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> </exclusions> </dependency> <dependency> <!--生成文件时使用--> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <!--自动生成文件中的注释--> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> 2、代码 执行下面类中的main方法即可 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; }