in jdbc/src/main/java/site/ycsb/db/JdbcDBCreateTable.java [96:216]
public static void main(String[] args) {
if (args.length == 0) {
usageMessage();
System.exit(0);
}
String tablename = null;
int fieldcount = -1;
Properties props = new Properties();
Properties fileprops = new Properties();
// parse arguments
int argindex = 0;
while (args[argindex].startsWith("-")) {
if (args[argindex].compareTo("-P") == 0) {
argindex++;
if (argindex >= args.length) {
usageMessage();
System.exit(0);
}
String propfile = args[argindex];
argindex++;
Properties myfileprops = new Properties();
try {
myfileprops.load(new FileInputStream(propfile));
} catch (IOException e) {
System.out.println(e.getMessage());
System.exit(0);
}
// Issue #5 - remove call to stringPropertyNames to make compilable
// under Java 1.5
for (Enumeration<?> e = myfileprops.propertyNames(); e.hasMoreElements();) {
String prop = (String) e.nextElement();
fileprops.setProperty(prop, myfileprops.getProperty(prop));
}
} else if (args[argindex].compareTo("-p") == 0) {
argindex++;
if (argindex >= args.length) {
usageMessage();
System.exit(0);
}
int eq = args[argindex].indexOf('=');
if (eq < 0) {
usageMessage();
System.exit(0);
}
String name = args[argindex].substring(0, eq);
String value = args[argindex].substring(eq + 1);
props.put(name, value);
argindex++;
} else if (args[argindex].compareTo("-n") == 0) {
argindex++;
if (argindex >= args.length) {
usageMessage();
System.exit(0);
}
tablename = args[argindex++];
} else if (args[argindex].compareTo("-f") == 0) {
argindex++;
if (argindex >= args.length) {
usageMessage();
System.exit(0);
}
try {
fieldcount = Integer.parseInt(args[argindex++]);
} catch (NumberFormatException e) {
System.err.println("Invalid number for field count");
usageMessage();
System.exit(1);
}
} else {
System.out.println("Unknown option " + args[argindex]);
usageMessage();
System.exit(0);
}
if (argindex >= args.length) {
break;
}
}
if (argindex != args.length) {
usageMessage();
System.exit(0);
}
// overwrite file properties with properties from the command line
// Issue #5 - remove call to stringPropertyNames to make compilable under
// Java 1.5
for (Enumeration<?> e = props.propertyNames(); e.hasMoreElements();) {
String prop = (String) e.nextElement();
fileprops.setProperty(prop, props.getProperty(prop));
}
props = fileprops;
if (tablename == null) {
System.err.println("table name missing.");
usageMessage();
System.exit(1);
}
if (fieldcount > 0) {
props.setProperty(JdbcDBClient.FIELD_COUNT_PROPERTY, String.valueOf(fieldcount));
}
try {
createTable(props, tablename);
} catch (SQLException e) {
System.err.println("Error in creating table. " + e);
System.exit(1);
}
}