代码生成器(mybatis逆向工程)
代码生成前:

代码生成后:

controller:

entity:

mapper:

service:

impl:

mapper.xml

引入依赖:
<!--版本号-->
<mybatis-plus.version>3.2.0</mybatis-plus.version>
<!--使用之前需要导包-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
</dependency>
代码:
/** * 代码生成器 * 将mapper.xml输出到resourse下面 * mybtis逆向工程 */ import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.InjectionConfig; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.po.TableInfo; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import java.util.ArrayList; import java.util.List; // 演示例子,执行 main 方法控制台输入模块表名回车自动生成对应项目目录中 public class GeneratorConfiguration { public static void main(String[] args) { // 代码生成器 AutoGenerator autoGenerator = new AutoGenerator(); autoGenerator.setGlobalConfig(globalConfig()); autoGenerator.setDataSource(dataSourceConfig()); autoGenerator.setPackageInfo(packageConfig()); autoGenerator.setCfg(injectionConfig()); autoGenerator.setTemplate(templateConfig()); autoGenerator.setStrategy(strategyConfig()); autoGenerator.execute(); } /** * @return 全局配置 */ static GlobalConfig globalConfig() { GlobalConfig globalConfig = new GlobalConfig(); // Entity、Mapper文件的输出路径 globalConfig.setOutputDir(projectPath() + "/src/main/java"); globalConfig.setOpen(false); globalConfig.setAuthor("hmt"); // 是否覆盖已有文件 globalConfig.setFileOverride(true); // 实体类以Entity为后辍z globalConfig.setEntityName("%sEntity"); // 业务层接口以Service为后辍 globalConfig.setServiceName("%sService"); // 开启 BaseResultMap globalConfig.setBaseResultMap(true); // 开启 baseColumnList globalConfig.setBaseColumnList(true); globalConfig.setSwagger2(true);//开启Swagger2模式 return globalConfig; } /** * @return 数据源配置 */ static DataSourceConfig dataSourceConfig() { DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setUrl("jdbc:mysql://localhost:3306/grms?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("root"); return dataSourceConfig; } /** * @return 项目路径 */ static String projectPath() { //return System.getProperty("user.dir"); return "D:\\home\\SpringBoot-MybatisPlus-Swagger\\system_setting"; } /** * Mapper接口的包路径必须与 @MapperScan(basePackages = {"..."}) 注解的属性配置一致。 * * @return 包配置 */ static PackageConfig packageConfig() { PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.hmt.system_setting"); // Entity的包名 packageConfig.setEntity("entity"); // Mapper接口的包名 packageConfig.setMapper("mapper"); return packageConfig; } /** * @return 自定义配置 */ static InjectionConfig injectionConfig() { InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { // to do nothing } }; cfg.setFileOutConfigList(fileOutConfigList()); return cfg; } /** * 将mapper.xml文件输出到 /src/main/resources 目录下。 * <p> * mapper.xml的路径必须与 application.properties(yml) 中的 mybatis-plus.mapper-locations 配置一致。 * * @return 自定义输出文件 * @see #templateConfig() */ static List<FileOutConfig> fileOutConfigList() { // 默认的模板引擎是 velocity String templatePath = "/templates/mapper.xml.vm"; // 自定义输出配置 List<FileOutConfig> fileOutConfigList = new ArrayList<>(); // 自定义配置会被优先输出 fileOutConfigList.add(new FileOutConfig(templatePath) { @Override public String outputFile(TableInfo tableInfo) { // mapper.xml的输出路径 return projectPath() + "/src/main/resources/mapper/" + tableInfo.getXmlName() + StringPool.DOT_XML; } }); return fileOutConfigList; } /** * @return 配置模板 * @see #fileOutConfigList() */ static TemplateConfig templateConfig() { TemplateConfig templateConfig = new TemplateConfig(); // 不将mapper.xml文件输出到 /src/main/java 目录下 templateConfig.setXml(null); return templateConfig; } /** * @return 策略配置 */ static StrategyConfig strategyConfig() { StrategyConfig strategyConfig = new StrategyConfig(); strategyConfig.setNaming(NamingStrategy.underline_to_camel); strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel); strategyConfig.setEntityLombokModel(true); strategyConfig.setEntityBooleanColumnRemoveIsPrefix(true); strategyConfig.setEntityTableFieldAnnotationEnable(true); strategyConfig.setRestControllerStyle(true); strategyConfig.setControllerMappingHyphenStyle(true); // 要生成代码的数据表 strategyConfig.setInclude("sys_user","sys_role","user_role"); return strategyConfig; } }

浙公网安备 33010602011771号