代码如下:
private static void readInput(String arr[], List<Table> tables) {
if (arr.length < 4 || !arr[0].equalsIgnoreCase("select") || !arr[2].equalsIgnoreCase("from")
|| !String.valueOf(arr[arr.length - 1].charAt(arr[arr.length - 1].length() - 1)).equals(";")) {
System.out.println("Output : SQL Error (Syntax Error)");
return;
}
if (arr.length == 4) {
Table table = searchTable(arr[3], tables);
if (table == null) {
System.out.println("Output : SQL Error (Table Not Found)");
return;
}
if (arr[1].equals("*")) {
System.out.println("Tabel \t: " + table.getName());
System.out.print("List Kolom \t:");
for (int i = 0; i < table.getColumns().length; i++) {
String s = table.getColumns()[i];
System.out.print(s);
if (i != table.getColumns().length - 1)
System.out.print(",");
}
System.out.println();
} else {
String selColumns[] = arr[1].split(",");
boolean first = true;
System.out.println("Tabel \t\t: " + table.getName());
System.out.print("List Kolom \t: ");
for (int i = 0; i < selColumns.length; i++) {
for (int j = 0; j < table.getColumns().length; j++) {
if (selColumns[i].equals(table.getColumns()[i])) {
if (first) {
System.out.print(selColumns[i]);
first = false;
break;
} else {
System.out.print("," + selColumns[i]);
break;
}
}
}
}
}
表:
会员,会员ID,妈妈,电话
Meminjam,id_buku,id_member,durasi;
Buku,id_buku,judul,类型;
该程序用于检查sql语句。它解析CSV文件中的数据。问题是当我选择2个以上的列时(例如,当我从成员中选择id_member时),它将显示表的名称和(属性)列。但是,当我尝试显示2列或更多列时,例如从member中选择id_member,nama等示例;该程序将仅显示id_member而不是id_member和nama。仅当我选择CSV中的第一列时,程序才会运行。
这是示例: example