Você não mudaria apenas:
numero = stmt.executeUpdate(query);
para:
numero = stmt.executeUpdate(query, Statement.RETURN_GENERATED_KEYS);
Dê uma olhada na documentação do JDBC
Statement
interface. Atualizar :Aparentemente há muita confusão sobre esta resposta, mas meu palpite é que as pessoas que estão confusas não estão lendo no contexto da pergunta que foi feita. Se você pegar o código que o OP forneceu em sua pergunta e substituir a única linha (linha 6) que estou sugerindo, tudo funcionará. O
numero
variável é completamente irrelevante e seu valor nunca é lido depois de definido.