myBatis plus 去除生成 controller

1.背景

很多时候我们使用mybatis-plus主要是生成对象模型,mapper文件,不需要controller和service,

那应该怎么办呢,很简单,设置为空字符串就可以了

// 不生成controller
templateConfig.setController("");
// 不生成service
templateConfig.setService("");
templateConfig.setServiceImpl("");

完整构建代码如下

2.代码

package com.XXX.mybatisGenerate;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;
import java.util.List;

/**
 * @Copyright (C) XXX科技股份技有限公司
 * @Author: lidp
 * @Date: 2022-10-17 15:46
 * @Description: <!-- 引入mybatis-plus 包-->
 * <dependency>
 * <groupId>com.baomidou</groupId>
 * <artifactId>mybatis-plus-boot-starter</artifactId>
 * <version>3.0-RELEASE</version>
 * </dependency>
 */
public class CodeGenerator {
    // 数据库链接信息
    private static String author = "codeGenerator";
    private static String url = "jdbc:oracle:thin:@192.168.1.1:1521:orcl136";
    private static String driverName = "oracle.jdbc.OracleDriver";
    private static String username = "XXXX";
    private static String password = "123456";
    // 包名
    private static String parent = "com.XXX";
    // 模块名称
    private static String moduleName = "demo";
    // 构建的表名,多个使用英文逗号隔开
    private static String tableName = "TR_COMPLAINT_XXXX";
    // 是否构建controller
    private static boolean haveController = true;
    // 是否构建service
    private static boolean haveService = true;

    /**
     * 构建代码入口
     *
     * @param args
     */
    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(author);
        gc.setOpen(false);
        mpg.setGlobalConfig(gc);
        // 数据源配置
        DataSourceConfig dsc = new DataSourceConfig();
        dsc.setUrl(url);
        dsc.setDriverName(driverName);
        dsc.setUsername(username);
        dsc.setPassword(password);
        mpg.setDataSource(dsc);
        // 包配置
        PackageConfig pc = new PackageConfig();
        pc.setModuleName(moduleName);
        pc.setParent(parent);
        mpg.setPackageInfo(pc);
        // 自定义配置
        InjectionConfig cfg = new InjectionConfig() {
            @Override
            public void initMap() {
                // to do nothing
            }
        };
        // 自定义输出配置
        List<FileOutConfig> focList = new ArrayList<>();
        cfg.setFileOutConfigList(focList);
        mpg.setCfg(cfg);
        // 配置模板
        TemplateConfig templateConfig = new TemplateConfig();
        templateConfig.setXml(null);
        mpg.setTemplate(templateConfig);
        if (!haveController) {
            // 不生成controller
            templateConfig.setController("");
        }
        if (haveService) {
            // 不生成controller
            templateConfig.setController("");
            // 不生成service
            templateConfig.setService("");
            templateConfig.setServiceImpl("");
        }
        // 策略配置
        StrategyConfig strategy = new StrategyConfig();
        strategy.setNaming(NamingStrategy.underline_to_camel);
        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
        strategy.setEntityLombokModel(true);
        strategy.setRestControllerStyle(true);
        strategy.setInclude(tableName.split(","));
        strategy.setControllerMappingHyphenStyle(true);
        mpg.setStrategy(strategy);
        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
        mpg.execute();
    }
}

 

完美!

posted @ 2022-10-17 17:15  李东平|一线码农  阅读(787)  评论(0编辑  收藏  举报