package com.example.demo.utils;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang.StringUtils;
import java.util.Scanner;
/**
* @author: Mr.
* @date: 2021/8/5 12:54
*/
public class MySqlGenerator {
/**
* 读取控制台内容
*/
// public static String scanner(String tip){
// Scanner scanner = new Scanner(System.in);
// System.out.println("请输入" + tip + ":");
// if (scanner.hasNext()){
// String ipt = scanner.next();
// if (StringUtils.isNotBlank(ipt)){
// return ipt;
// }
// }
// throw new MybatisPlusException("请输入正确的:"+tip+"!");
// }
public static void main(String[] args) {
// 代码生成器
AutoGenerator mpg = new AutoGenerator();
// 全局配置
GlobalConfig gc = new GlobalConfig();
String projectPath = System.getProperty("user.dir");
gc.setOutputDir(projectPath + "/src/main/java");
gc.setActiveRecord(true);
gc.setAuthor("Mrs.Liao"); //设置作者
gc.setIdType(IdType.AUTO);
gc.setOpen(false);
gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
gc.setServiceName("%sService"); //生成的service接口名字首字母是否为I,这样设置就没有
gc.setBaseResultMap(true); //基本的字段映射
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("root");
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setParent("com.oeandn.hanwha");
// pc.setModuleName(scanner("模块名"));
pc.setMapper("mapper");
pc.setService("service");
pc.setController("controller");
pc.setEntity("entity");
mpg.setPackageInfo(pc);
// 4、策略配置
StrategyConfig strategy = new StrategyConfig();
strategy.setCapitalMode(true); // 全局大写命名
strategy.setNaming(NamingStrategy.underline_to_camel); // 数据库字段下划线转驼峰命令策略
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
strategy.setEntityTableFieldAnnotationEnable(true);
strategy.setRestControllerStyle(true);
String tables = "table,table2";
strategy.setInclude(tables.split(","));
mpg.setStrategy(strategy);
//5、执行
mpg.execute();
}
}