整合测试模块-工作


    <dependencies>
        <dependency>
            <groupId>com.hengtiansoft.business.gdpex.yd</groupId>
            <artifactId>common</artifactId>
            <version>1.0.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-to-slf4j</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.logging.log4j</groupId>
                    <artifactId>log4j-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>

                <exclusion>
                    <groupId>org.mybatis</groupId>
                    <artifactId>mybatis</artifactId>
                </exclusion>
            </exclusions>
        </dependency>



        <!-- 代码生成器 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>
        <!-- velocity 模板引擎 -->
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
            <version>2.3</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
<!--        <dependency>-->
<!--            <groupId>com.hengtiansoft.sc</groupId>-->
<!--            <artifactId>data-support-orm-mybatisplus</artifactId>-->
<!--        </dependency>-->
        <!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.26</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

    </dependencies>

Generator

package com.hengtiansoft.business.gdpex.yd.generate;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.fill.Column;
import com.baomidou.mybatisplus.generator.fill.Property;

import java.util.Collections;

/**
 * MP代码生成器主类
 *
 * @author Chenyang Fan
 * @since 1.0.0
 */
public class Generator {

    // 项目地址
    private static String projectName = "/framework/myTest";
    private static String packageName = "com.hengtiansoft.business.gdpex";

    /**
     * 过滤表前缀
     */
    private static String[] tablePrefix = new String[]{

    };

    /**
     * 过滤表后缀
     */
    private static String[] tableSuffix = new String[]{

    };

    /**
     * 过滤字段前缀
     */
    private static String[] fieldPrefix = new String[]{

    };

    /**
     * 过滤字段后缀
     */
    private static String[] fieldSuffix = new String[]{

    };

    // 设置要映射的表 (如需使用,需要打开strategyConfig中的addInclude(tableName)的注释)
    private static String[] tableName = new String[]{
            "user"
    };

    public static void main(String[] args) {


        String url = "jdbc:mysql://127.0.0.1:3306/ht-oa?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&verifyServerCertificate=false&zeroDateTimeBehavior=CONVERT_TO_NULL&nullCatalogMeansCurrent=true&tinyInt1isBit=false&useAffectedRows=true";
        String username = "root";
        String password = "123456";

        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder(url, username, password)
                .typeConvert(new MySqlTypeConvertCustom())
                .build();

        /*
          全局配置(GlobalConfig)
         */
        GlobalConfig globalConfig = new GlobalConfig.Builder()
                .fileOverride()         //覆盖已生成文件
                .disableOpenDir()       //禁止打开输出目录
                .outputDir(System.getProperty("user.dir") + projectName + "/src/main/java") //指定输出目录
                .author("sc")   //作者名
                .enableSwagger()    //开启 swagger 模式
                .dateType(DateType.TIME_PACK)   //时间策略
                .commentDate("yyyy-MM-dd")  //注释日期
                .build();


        /*
          包配置(PackageConfig)
         */
        PackageConfig packageConfig = new PackageConfig.Builder()
                .parent(packageName)    //父包名
                .moduleName("yd")  //父包模块名
                .entity("entity.po")    //Entity 包名
                .service("service")     //Service 包名
                .serviceImpl("service.impl")    //Service Impl 包名
                .mapper("mapper")       //Mapper 包名
                .xml("mapper.xml")      //Mapper XML 包名
                .controller("controller")   //Controller 包名
                .other("other")  //自定义文件包名
                .pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + projectName + "/src/main/resources/mapper"))  //路径配置信息
                .build();


        /*
          模板配置(TemplateConfig)
         */
        TemplateConfig templateConfig = new TemplateConfig.Builder()
                .disable(TemplateType.ENTITY)
                .entity("/templates/entity.java")
                .service("/templates/service.java")
                .serviceImpl("/templates/serviceImpl.java")
                .mapper("/templates/mapper.java")
                .mapperXml("/templates/mapper.xml")
                .controller("/templates/controller.java")
                .build();


        /*
          注入配置(InjectionConfig)
         */
        InjectionConfig injectionConfig = new InjectionConfig.Builder()
                .beforeOutputFile((tableInfo, objectMap) -> {
                    System.out.println("tableInfo: " + tableInfo.getEntityName() + " objectMap: " + objectMap.size());
                })
                .customMap(Collections.singletonMap("test", "baomidou"))
                .customFile(Collections.singletonMap("test.txt", "/templates/test.vm"))
                .build();


        /*
          策略配置(StrategyConfig)
         */
        StrategyConfig strategyConfig = new StrategyConfig.Builder()
                .enableCapitalMode()   //开启大写命名
                //        .enableSkipView()     //开启跳过视图
                .disableSqlFilter()     //禁用 sql 过滤
                //        .likeTable(new LikeTable("USER"))
                .addInclude(tableName)  // 设置要映射的表
                .addTablePrefix(tablePrefix) //增加过滤表前缀
                .addTableSuffix(tableSuffix) //增加过滤表后缀
                .addFieldPrefix(fieldPrefix) //增加过滤字段前缀
                .addFieldSuffix(fieldSuffix) //增加过滤字段后缀
                .build();


        /* ----------------------------实体策略配置---------------------------- */
        strategyConfig = strategyConfig
                .entityBuilder()
                .disableSerialVersionUID()
//                    .enableChainModel()
                .enableLombok()
//                    .enableRemoveIsPrefix()
                .enableTableFieldAnnotation()
//                    .enableActiveRecord()
                .versionColumnName("version").versionPropertyName("version")
                .logicDeleteColumnName("deleted").logicDeletePropertyName("deleteFlag")
                .naming(NamingStrategy.underline_to_camel)
                .columnNaming(NamingStrategy.underline_to_camel)
                .addSuperEntityColumns("id", "created_by", "created_time", "updated_by", "updated_time")
                .addIgnoreColumns("age")
                .addTableFills(new Column("create_time", FieldFill.INSERT)) // 插入时改变的时间纪录, created为表的字段名
                .addTableFills(new Property("update_Time", FieldFill.INSERT_UPDATE)) // 最后一次更新时updated表字段的时间记录
                .idType(IdType.AUTO)
                .formatFileName("%sEntity")
                .build();


        /* ----------------------------Controller 策略配置---------------------------- */
        strategyConfig = strategyConfig
                .controllerBuilder()
                .enableRestStyle()
                .formatFileName("%sController")
                .build();

        /* ----------------------------Mapper 策略配置---------------------------- */
        strategyConfig = strategyConfig
                .mapperBuilder()
                .enableMapperAnnotation()
                .enableBaseResultMap()
                .enableBaseColumnList()
                .formatMapperFileName("%sDao")
                .formatXmlFileName("%sMapper")
//                .formatXmlFileName("%sXml")
                .build();


        /* ----------------------------service 策略配置---------------------------- */
        strategyConfig = strategyConfig
                .serviceBuilder()
                .formatServiceFileName("%sService")
                .formatServiceImplFileName("%sServiceImp")
                .build();

        AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfig);
        autoGenerator.global(globalConfig);
        autoGenerator.packageInfo(packageConfig);
        autoGenerator.strategy(strategyConfig);
        autoGenerator.execute();


    }
}

MySqlTypeConvertCustom

package com.hengtiansoft.business.gdpex.yd.generate;

import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.ITypeConvert;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;

/**
 * Description: tinyint(1)映射成integer
 *
 * @author wenlongchen
 * @since 2022/6/13
 */
public class MySqlTypeConvertCustom extends MySqlTypeConvert implements ITypeConvert {

    @Override
    public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) {
        String t = fieldType.toLowerCase();
        if (t.contains("tinyint(1)")) {
            return DbColumnType.INTEGER;
        }
        return super.processTypeConvert(globalConfig, fieldType);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值