Вы должны вызвать другой метод.
Хотя обо всем по порядку:
Неверный код (широко открыт для атаки SQL-инъекцией):
statement = connection.createStatement();
resultSet = statement.executeQuery(
"INSERT INTO flights
('flightID','departure','arrival')
VALUES('"+flightID+"','"+departure+"','"+arrival+"')");
Хороший код:
PreparedStatement statement = connection.prepareStatement(
"INSERT INTO flights (flightID,departure,arrival)
VALUES(?,?,?)");
statement.setString(1,flightID);
statement.setString(2,departure);
statement.setString(3,arrival);
statement.executeUpdate();
// thanks to @lobster1234 for reminder!
connection.commit();
Вы заметили, что я выполняю executeUpdate () вместо executeQuery ()? Потому что это причина твоих неприятностей.
P.S. Я также заметил, что вы передаете flightID в метод как int, но вставляете его в базу данных в виде строки. Обычно это не очень хорошая практика. Придерживайтесь одного типа данных. Если ID действительно число, сделайте его номером в базе данных, а затем вызовите setInt (1, flightID); в качестве альтернативы, передайте его как String.