Non vorresti semplicemente cambiare:
numero = stmt.executeUpdate(query);
a:
numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
Dai un'occhiata alla documentazione per JDBC Statement
interfaccia.
Aggiorna :Apparentemente c'è molta confusione su questa risposta, ma suppongo che le persone confuse non la stiano leggendo nel contesto della domanda che è stata posta. Se prendi il codice fornito dall'OP nella sua domanda e sostituisci la riga singola (riga 6) che sto suggerendo, tutto funzionerà. Il numero
variabile è completamente irrilevante e il suo valore non viene mai letto dopo che è stata impostata.