Ответ 1
Попробуйте использовать псевдоним
rs = st.executeQuery("select last_insert_id() as last_id from schedule");
lastid = rs.getString("last_id");
Я пытаюсь получить команду mysql как mysql_insert_id(); которые извлекают последний вставленный идентификатор auto_increment строки. Что я могу сделать, чтобы получить его на Java?
rs = st.executeQuery("select last_insert_id() from schedule");
lastid = rs.getString("last_insert_id()");
my lastid был объявлен как INT. Я dono, что использовать в rs.get, а также параметр..
Попробуйте использовать псевдоним
rs = st.executeQuery("select last_insert_id() as last_id from schedule");
lastid = rs.getString("last_id");
Используя JDBC, вы можете использовать метод Connection.PreparedStatement(query, int).
PreparedStatement pstmt = conn.prepareStatement(Query, Statement.RETURN_GENERATED_KEYS);
pstmt.executeUpdate();
ResultSet keys = pstmt.getGeneratedKeys();
keys.next();
key = keys.getInt(1);
см. эту статью для ответа и объяснения
Statement stmt = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
numero = stmt.executeUpdate();
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()){
risultato=rs.getInt(1);
}
Почему бы не
SELECT MAX(id) FROM schedule
Если id вашего столбца имеет другое имя, чем id
, вам необходимо его соответствующим образом заменить в приведенном выше запросе.
Вы можете использовать его как:
rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule");
int lastid = rs.getInt("id");
Вы можете использовать следующий запрос, чтобы получить последний auto_incremented ID последней вставленной строки.
SELECT (max(auto_incr_id)) from table_name;