Ваше использование getGenereatedKeys()
на самом деле мне кажется правильным для Oracle, но проблема на самом деле с вашим первым оператором вставки.У вас есть заполнители (и имена столбцов) для 5 столбцов, но вы связываете только 4 значения.Попробуйте что-то вроде этого:
String sql = "insert into accommodation (type, name, price, description, username) ";
sql += "VALUES (?, ?, ?, ?, ?)";
String generatedColumns[] = { "ID" };
psParent = currentCon.prepareStatement(sql, generatedColumns);
psParent.setString(1, type);
psParent.setString(2, name);
psParent.setFloat(3, price);
psParent.setString(4, description); // I ADDED THIS LINE
psParent.setString(5, username);
psParent.executeUpdate();
Я предполагаю, что у вас есть переменная, содержащая описание для вставки.Если нет, то полностью удалите description
и его заполнитель из подготовленного оператора или просто вставьте ноль.