All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ssrs.platform.MysqlGenerator Maven / Gradle / Ivy

There is a newer version: 1.0.5
Show newest version
package com.ssrs.platform;

import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.IColumnType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.*;

/**
 * @Description: 代码生成器
 * @Author: ssrs
 * @CreateDate: 2019/9/7 20:20
 * @UpdateUser: ssrs
 * @UpdateDate: 2019/9/7 20:20
 * @Version: 1.0
 */
public class MysqlGenerator {


    public static void main(String[] args) {
        generator();
    }

    /**
     * 

* MySQL generator *

*/ public static void generator() { // 自定义需要填充的字段 List tableFillList = new ArrayList<>(); tableFillList.add(new TableFill("create_user", FieldFill.INSERT)); tableFillList.add(new TableFill("create_time", FieldFill.INSERT)); tableFillList.add(new TableFill("update_user", FieldFill.UPDATE)); tableFillList.add(new TableFill("update_time", FieldFill.UPDATE)); // 代码生成器 AutoGenerator mpg = new AutoGenerator().setGlobalConfig( // 全局配置 new GlobalConfig() .setOutputDir("D:\\workspace\\EightRoes\\plugin-platform\\src\\main\\java")//输出目录 .setFileOverride(false)// 是否覆盖文件 .setActiveRecord(false)// 开启 activeRecord 模式 .setEnableCache(false)// XML 二级缓存 .setBaseResultMap(false)// XML ResultMap .setBaseColumnList(false)// XML columList .setKotlin(false) //是否生成 kotlin 代码 .setAuthor("ssrs") //作者 //自定义文件命名,注意 %s 会自动填充表实体属性! .setEntityName("%s") .setMapperName("%sMapper") .setXmlName("%sMapper") .setServiceName("I%sService") .setServiceImplName("%sServiceImpl") .setControllerName("%sController") ).setDataSource( // 数据源配置 new DataSourceConfig() .setDbType(DbType.MYSQL)// 数据库类型 .setTypeConvert(new MySqlTypeConvert() { @Override public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) { if (fieldType.toLowerCase().contains("bit")) { return DbColumnType.BOOLEAN; } if (fieldType.toLowerCase().contains("tinyint")) { return DbColumnType.BOOLEAN; } if (fieldType.toLowerCase().contains("datetime")) { return DbColumnType.LOCAL_DATE_TIME; } if (fieldType.toLowerCase().contains("date")) { return DbColumnType.LOCAL_DATE; } if (fieldType.toLowerCase().contains("time")) { return DbColumnType.LOCAL_TIME; } return super.processTypeConvert(globalConfig, fieldType); } }) .setDriverName("com.mysql.cj.jdbc.Driver") .setUsername("root") .setPassword("1234") .setUrl("jdbc:mysql://127.0.0.1:3306/ssrs-sso?characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false") ).setStrategy( // 策略配置 new StrategyConfig() .setRestControllerStyle(true) .setCapitalMode(false)// 全局大写命名 .setTablePrefix("sys_")// 去除前缀 .setNaming(NamingStrategy.underline_to_camel)// 表名生成策略 .setInclude("sys_user") // 需要生成的表 // 自动填充字段 .setTableFillList(tableFillList) // 【实体】是否生成字段常量(默认 false) .setEntityColumnConstant(true) // 【实体】是否为构建者模型(默认 false) .setEntityBuilderModel(false) // 【实体】是否为lombok模型(默认 false)document .setEntityLombokModel(true) // Boolean类型字段是否移除is前缀处理 .setEntityBooleanColumnRemoveIsPrefix(true) .setRestControllerStyle(false) // .setControllerMappingHyphenStyle(true) ).setCfg( // 注入自定义配置,可以在 VM 中使用 cfg.abc 设置的值 new InjectionConfig() { @Override public void initMap() { Map map = new HashMap<>(); this.setMap(map); } }.setFileOutConfigList(Collections.singletonList(new FileOutConfig( "/templates/mapper.xml.ftl") { // 自定义输出文件目录 @Override public String outputFile(TableInfo tableInfo) { return "D:\\workspace\\EightRoes\\plugin-platform\\src\\main\\resources\\mapper\\" + tableInfo.getEntityName() + "Mapper.xml"; } })) ).setPackageInfo( // 包配置 new PackageConfig() .setParent("com.ssrs.platform") .setController("controller") .setEntity("model.entity") .setMapper("mapper") .setService("service") .setServiceImpl("service.impl") ).setTemplate( new TemplateConfig().setXml(null) ); mpg.setTemplateEngine(new FreemarkerTemplateEngine()); mpg.execute(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy