Вот код:
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;
}
}
}
}
}
таблица:
Участник, member_id, nama, telp
Meminjam, id_buku, id_member, durasi;
Buku, id_buku, judul, genre;
Эта программа предназначена для проверки операторов SQL.Он анализирует данные из файла CSV.Проблема в том, что когда я выбираю более 2 столбцов, например, когда я выбираю id_member из member, он будет показывать имя таблицы и (атрибуты) столбцов.Однако, когда я пытаюсь показать 2 или более столбца, например, как select id_member, nama from member;Программа будет показывать только id_member вместо id_member и nama.Программа запустится только тогда, когда я выберу первый столбец только в CSV.
вот пример: пример