package com.xiruibin.db.util; import java.io.File; import java.util.Arrays; import com.xiruibin.Log; import com.xiruibin.Parameters; /** * 帮助类 */ public final class CMDHelper { private static final String cmdHelpString = "-h 数据库地址 \n" + "-u 用户名 \n" + "-p 密码 \n" + "-P 端口 \n" + "-d 数据库名 \n" + "-s 模式名\n" + "-t 表名 (用,分隔)\n" + "--path 储存文档的路径\n" + "--help 帮助 \n" + "说明:\n" + " 1.-u -p -d 必填参数.\n" + " 2.命令后面要打一个空格,然后跟参数 \n" + " 如:-h 127.0.0.1 -u root -p root -d database --path D:\\doc \n"; /** * 打印帮助信息 */ public static void printCmdHelp() { Log.info(cmdHelpString); } /** * 命令参数解析 * * @param cmd * @return */ public static Parameters parseCommand(String cmd) { Parameters parameter = new Parameters(); String[] cmds = cmd.split(" "); if (cmds.length == 1 && cmds[0].equals("--help")) { CMDHelper.printCmdHelp(); return null; } if (cmds.length < 6) { Log.severe("参数不全."); CMDHelper.printCmdHelp(); // System.exit(-1); return null; } // 分析参数 int len = cmds.length; for (int i = 0; i < len; i += 2) { if (cmds[i].equals("-u")) { parameter.setUser(cmds[i + 1]); } else if (cmds[i].equals("-p")) { parameter.setPassword(cmds[i + 1]); } else if (cmds[i].equals("-d")) { parameter.setDatabase(cmds[i + 1]); } else if (cmds[i].equals("-s")) { parameter.setSchema(cmds[i + 1]); } else if (cmds[i].equals("-t")) { if (StringUtils.hasLength(cmds[i + 1].toUpperCase())) { parameter.setTables(Arrays.asList(cmds[i + 1].split(","))); } } else if (cmds[i].equals("-h")) { parameter.setHost(cmds[i + 1]); } else if (cmds[i].equals("-P")) { parameter.setPort(cmds[i + 1]); } else if (cmds[i].equals("--path")) { parameter.setPath(resolvePath(cmds[i + 1])); } else { Log.severe(cmds[i] + "is Illegal parameters!"); CMDHelper.printCmdHelp(); return null; } } return parameter; } /** * 路径处理 * * @param path * @return */ private static String resolvePath(String path) { String separator = File.separator; if (!path.endsWith(separator)) { path += separator; } return path; } }