使用 Generator 代码生成器

说明:Generator 作为一个生成工具,不光局限于 SpringBoot 、SSH  、SSM ,它只是一个工具。

仅以 mysql 为例, 会生成对象文件至  D:/source

1、 添加 Mavne 库


    com.baomidou
    mybatisplus-spring-boot-starter
    1.0.5


    com.baomidou
    mybatis-plus
    2.2.0


    mysql
    mysql-connector-java
    runtime


    org.apache.velocity
    velocity-engine-core
    2.0

2、添加工具类

package com;

import java.util.HashMap;
import java.util.Map;

import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
import com.baomidou.mybatisplus.generator.config.rules.DbType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;

import lombok.extern.slf4j.Slf4j;

/**
 * 

* 代码生成器演示 *

*/ @Slf4j public class MpGenerator { public static void main(String[] args) { AutoGenerator mpg = new AutoGenerator(); // 全局配置 GlobalConfig gc = new GlobalConfig(); gc.setOutputDir("D:/source"); gc.setFileOverride(true); gc.setActiveRecord(true); gc.setEnableCache(false);// XML 二级缓存 gc.setBaseResultMap(true);// XML ResultMap gc.setBaseColumnList(false);// XML columList gc.setAuthor("the_sardine"); mpg.setGlobalConfig(gc); // 数据源配置 DataSourceConfig dsc = new DataSourceConfig(); dsc.setDbType(DbType.MYSQL); dsc.setTypeConvert(new MySqlTypeConvert() { // 自定义数据库表字段类型转换【可选】 @Override public DbColumnType processTypeConvert(String fieldType) { log.info("转换类型:" + fieldType); // 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。 return super.processTypeConvert(fieldType); } }); dsc.setDriverName("com.mysql.jdbc.Driver"); dsc.setUsername("root"); dsc.setPassword("123456"); dsc.setUrl( "jdbc:mysql://127.0.0.1:3306/user?useUnicode=true&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useSSL=false"); mpg.setDataSource(dsc); // 策略配置 StrategyConfig strategy = new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略 strategy.setInclude("sec_org"); mpg.setStrategy(strategy); // 包配置 PackageConfig pc = new PackageConfig(); pc.setParent(null); pc.setEntity("com.example.domain.model"); pc.setMapper("com.example.domain.repository"); pc.setXml("com.example.domain.repository.xml"); pc.setService("com.example.domain.service"); // 本项目没用,生成之后删掉 pc.setServiceImpl("com.example.domain.service.impl"); // 本项目没用,生成之后删掉 pc.setController("com.example.app"); // 本项目没用,生成之后删掉 mpg.setPackageInfo(pc); // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】 InjectionConfig cfg = new InjectionConfig() { @Override public void initMap() { Map map = new HashMap<>(); map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp"); this.setMap(map); } }; mpg.setCfg(cfg); mpg.execute(); // 打印注入设置【可无】 log.error("error", mpg.getCfg().getMap().get("abc")); } }


你可能感兴趣的:(Maven,Mybitas)