У меня есть веб-служба и база данных (MySQL), я создал таблицу под названием batch, которая должна генерировать каждый раз, когда я добавляю некоторое значение, уникальный ключ.Java Spring JDBC last_insert_id()
CREATE TABLE batch (
id INT AUTO_INCREMENT PRIMARY KEY,
description VARCHAR(250) NOT NULL
);
Это код для таблицы базы данных и здесь вы, что я написал до сих пор:
static final String addBatchIdSql = "INSERT INTO batch" + "(description)" + "VALUES (?)";
static final String getBatchIdSql = "SELECT LAST_INSERT_ID()";
@Override
public int getBatchId() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String batchIDcreation = dateFormat.format(new Date());
jdbcTemplate.update(addBatchIdSql, batchIDcreation);
SqlRowSet rowSet = jdbcTemplate.queryForRowSet(getBatchIdSql);
while (rowSet.next()) {
System.out.println(rowSet.findColumn("id"));
}
return 0;
}
Проблема в том, что каждый раз, когда я пытаюсь получить идентификатор он бросает исключение, которое заявляет «недопустимое имя столбца», я проверил свойства именования в своем приложении в целом и не смог найти какую-либо проблему, что здесь может быть неправильным: //
Вы найдете [этот SO post] (http://stackoverflow.com/questions/14170656/get-last-inserted-auto-increment-id-in-mysql) очень поучительным. –
Полезная ссылка на MySQL 'LAST_INSERT_ID': http://dba.stackexchange.com/questions/21181/is-mysqls-last-insert-id-function-guaranteed-to-be-correct –