Я использую следующую настройку:
public MySQLProcessWriter(Connection con) throws SQLException {
String returnNames[] = {"processId","length","vertices"};
addresser = con.prepareStatement("INSERT INTO addressbook (length, vertices, activity) VALUES (?, ?, ?)", returnNames);
}
processId
соответствует столбцу с автоинкрементом в таблице адресной книги. Идея такова: у меня есть повторная вставка, я возвращаю часть того, что было вставлено + автоматически сгенерированный processId. Однако я получаю SQLException «столбец не найден», когда я пытаюсь addresser.getGeneratedKeys().getInt("processId");
после выполнения подготовленного оператора (после соответствующей установки значений). Код для этого
addresser.setInt(1, length);
addresser.setInt(2, vertices);
addresser.setDouble(3, activity);
addresser.executeUpdate();
int processId = addresser.getGeneratedKeys().getInt("processId");
внутри цикла, который обновляет длину, вершины, активность. Итак ... что дает? Я неправильно понимаю, что делает метод prepareStatement (sqlstring, string [])?