mybatisPlus代码生成器

pom.xml引入依赖

		<!-- 代码生成 -->
		<dependency>
			<groupId>org.apache.velocity</groupId>
			<artifactId>velocity-engine-core</artifactId>
			<version>2.3</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-generator</artifactId>
			<version>3.5.0</version>
			<scope>test</scope>
		</dependency>
		<!-- 代码生成 -->
		<!-- mybatisPlus -->
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-boot-starter</artifactId>
			<version>3.4.3.1</version>
		</dependency>
		<dependency>
			<groupId>com.baomidou</groupId>
			<artifactId>mybatis-plus-extension</artifactId>
			<version>3.4.3.1</version>
		</dependency>
		<!-- mybatisPlus -->

这个类放到test目录下,执行即可,如果没有junit,自行引入

package cn.goldencis.gdcontainer.microservice;

import com.baomidou.mybatisplus.generator.SimpleAutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.junit.Test;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

/**
 * 代码生成器
 * @author gaokuo
 */
public class DaiMa {
    /**
     * 代码生成到什么位置,换句话说,springboot的根包
     */
    String basePackage = "cn.asdsd.dsadsa.microservice.";
    /**
     * 数据库相关
     */
    String databaseUrl = "jdbc:mysql://10.10.16.**:3306/**?generateSimpleParameterMetadata=true&characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai";
    String databaseUsername = "root";
    String databasePassword = "---";
    /**
     * 您的大名
     */
    String author = "gaokuo";

    @Test
    public void main() {
        String projectPath = System.getProperty("user.dir");
        String javaPath = projectPath + File.separator + "src/main/java/" + basePackage.replaceAll("\\.","/");
        new SimpleAutoGenerator() {
            /**
             * 全局配置 Builder
             */
            @Override
            public IConfigBuilder<GlobalConfig> globalConfigBuilder() {
                return new GlobalConfig.Builder()
                        .openDir(false)
                        .outputDir(projectPath + File.separator + "src/main/java")
                        .fileOverride()
                        .enableSwagger()
                        .author(author)
                        .dateType(DateType.TIME_PACK)
                        .commentDate("yyyy-MM-dd");
            }

            /**
             * 数据源配置 Builder
             */
            @Override
            public IConfigBuilder<DataSourceConfig> dataSourceConfigBuilder() {

                return new DataSourceConfig.Builder(databaseUrl,
                        databaseUsername, databasePassword);
            }

            /**
             * 代码生成策略配置 Builder
             */
            @Override
            public IConfigBuilder<StrategyConfig> strategyConfigBuilder() {
                return new StrategyConfig.Builder().addInclude(scannerNext("\n请输入表名多个英文逗号分隔:").split(","))
                        .enableCapitalMode()
                        .enableSkipView()
                        .disableSqlFilter()
                        .entityBuilder()
                        //.superClass(BaseEntity.class)
                        .enableSerialVersionUID()
                        .enableChainModel()
                        .enableLombok()
                        .naming(NamingStrategy.underline_to_camel)
                        .mapperBuilder()
                        .formatMapperFileName("%sMapper")
                        .formatXmlFileName("%sMapper")
                        .enableBaseResultMap()
                        .serviceBuilder()
                        //.superServiceClass(BaseService.class)
                        //.superServiceImplClass(BaseServiceImpl.class)
                        .formatServiceFileName("I%sService")
                        .formatServiceImplFileName("%sServiceImpl")
                        .controllerBuilder()
                        .formatFileName("%sController")
                        .enableRestStyle()
                        .enableHyphenStyle();
            }

            /**
             * 生成文件包名配置 Builder
             */
            @Override
            public IConfigBuilder<PackageConfig> packageConfigBuilder() {
                String moduleName = scannerNext("\n请输入项目模块名:");
                String modulePath = javaPath + moduleName + File.separator;
                Map<String,String> pathIndo = new HashMap<>();
                pathIndo.put(ConstVal.XML_PATH, projectPath + File.separator + "src/main/resources/mappers/" + moduleName);
                pathIndo.put(ConstVal.ENTITY_PATH, modulePath + "entity");
                pathIndo.put(ConstVal.SERVICE_PATH, modulePath + "service");
                pathIndo.put(ConstVal.SERVICE_IMPL_PATH, modulePath + "service/impl");
                pathIndo.put(ConstVal.MAPPER_PATH, modulePath + "mapper");
                pathIndo.put(ConstVal.CONTROLLER_PATH, modulePath + "controller");
                return new PackageConfig.Builder()
                        .pathInfo(pathIndo)
                        .parent(basePackage + moduleName);
                        /*.entity("model.entity")
                        .mapper("mapper")
                        .service("service")
                        .serviceImpl("service.impl")
                        .controller("controller")
                        .xml(projectPath + File.separator + "src/main/resources/mappers");*/
            }

            @Override
            public IConfigBuilder<InjectionConfig> injectionConfigBuilder() {
                return super.injectionConfigBuilder();
            }
        }.execute();
    }

}

如果用的是idea,test下控制台无法输入,customer vm options加上:-Deditable.java.test.console=true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值