[原创] Mybatis-Plus代码生成器

import com.baomidou.mybatisplus.annotation.DbType;
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 com.baomidou.mybatisplus.generator.engine.VelocityTemplateEngine;

import java.util.Collections;
import java.util.Scanner;

/**
 * mybatis-plus代码生成器
 *
 * @author 韩朝阳
 * @date 2020-04-27
 */
public class AutoGeneratorUtil {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("按回车键继续");
        scanner.nextLine();

        // 代码生成器
        new AutoGenerator()
                .setGlobalConfig(
                        // 全局配置
                        new GlobalConfig()
                                .setOutputDir(System.getProperty("user.dir") + "/src/main/java")
                                .setAuthor("韩朝阳")
                                .setOpen(false)
                                .setBaseResultMap(true)
                                .setBaseColumnList(true)
                                .setServiceName("%sService")
                )
                .setDataSource(
                        // 数据源配置
                        new DataSourceConfig()
                                .setDbType(DbType.MYSQL)
                                .setUrl("jdbc:mysql://localhost:3306/xxx?userSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT")
                                .setDriverName("com.mysql.cj.jdbc.Driver")
                                .setUsername("xxx")
                                .setPassword("xxx")
                )
                .setPackageInfo(
                        // 包配置
                        new PackageConfig()
                                .setParent("com.hanchaoyang.demo")
                )
                .setTemplate(
                        // 模板配置
                        new TemplateConfig()
                                .setXml(null)
                )
                .setStrategy(
                        // 策略配置
                        new StrategyConfig()
                                .setNaming(NamingStrategy.underline_to_camel)
                                .setColumnNaming(NamingStrategy.underline_to_camel)
                                .setEntityLombokModel(true)
                                .setRestControllerStyle(true)
                                // 在这里设置要生成的表, 注释掉该行后全部生成
                                .setInclude(new String[]{"xxx", "xxx", "xxx"})
                                .setControllerMappingHyphenStyle(true)
                                .setVersionFieldName("version")
                )
                .setTemplateEngine(
                        // 模板引擎配置
                        new VelocityTemplateEngine()
                )
                .setCfg(
                        // 自定义配置
                        new InjectionConfig() {
                            @Override
                            public void initMap() {
                            }
                        }.setFileOutConfigList(Collections.singletonList(
                                new FileOutConfig("/templates/mapper.xml.vm") {
                                    @Override
                                    public String outputFile(TableInfo tableInfo) {
                                        return System.getProperty("user.dir") + "/src/main/resources/mapper/"
                                                + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
                                    }
                                }))
                ).execute();
    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。