package com.fpcms.tools;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Scanner;
import cn.org.rapid_framework.generator.GeneratorContext;
import cn.org.rapid_framework.generator.GeneratorFacade;
import cn.org.rapid_framework.generator.GeneratorProperties;
import cn.org.rapid_framework.generator.ext.tableconfig.model.TableConfig;
import cn.org.rapid_framework.generator.ext.tableconfig.model.TableConfig.OperationConfig;
import cn.org.rapid_framework.generator.provider.db.sql.model.Sql;
import cn.org.rapid_framework.generator.util.sqlparse.SqlParseHelper;
/**
* 基于数据库SQL的代码生成器
*
* @author badqiu
*
*/
public class SqlGeneratorMain {
//
public static void main(String[] args) throws Exception {
GeneratorFacade g = new GeneratorFacade();
g.getGenerator().setTemplateRootDirs(
"src/main/generator/template/share/custom",
"src/main/generator/template/sql/spring_jdbc"
// "classpath:generator/template/rapid/table/dao_spring_jdbc",
// "classpath:generator/template/rapid/table/dao_share_query_object",
// "classpath:generator/template/rapid/table/dao_test"
// "classpath:generator/template/rapid/table/service_complex",
// "classpath:generator/template/rapid/table/web_springmvc_rest"
);
// g.deleteOutRootDir(); //删除生成器的输出目录
while(true) {
System.out.println("请输入要生成的[SQL],输入[;号]回车生成代码,quit退出程序");
String nextLine = new Scanner(System.in).useDelimiter(";").next();
try {
if("quit".equals(nextLine.trim())) {
break;
}else {
// sql.setParamType("primitive");
// sql.setParameterClass("DemoParameterClass");
TableConfig tableConfig = new TableConfig();
tableConfig.setSqlName(SqlParseHelper.getTableNamesByQuery(nextLine).iterator().next().getName());
HashMap hashMap = new HashMap();
hashMap.put("tableConfig", tableConfig);
hashMap.put("appName", "DemoAppName");
GeneratorContext.setContext(hashMap);
OperationConfig operationConfig = new OperationConfig();
operationConfig.setSql(nextLine);
operationConfig.setName("dosomething");
tableConfig.setOperations(Arrays.asList(new OperationConfig[]{operationConfig}));
// Sql sql = new SqlFactory().parseSql(nextLine);
Sql sql = tableConfig.getSqls().get(0);
g.generateBySql(sql);
Runtime.getRuntime().exec("cmd.exe /c start "+GeneratorProperties.getRequiredProperty("outRoot")); //打开文件夹
}
}catch(Exception e) {
e.printStackTrace();
}
}
}
//
}