rodriguesabner 9 de mai. de 2019
Você tem certeza que a coluna é id_aluno mesmo? Tenta isso:
Thiago, eu uso esse método pra retornar o ID, meu banco é o Postgres tbm (Funciona com MySQL tbm):
PreparedStatement pst = conecta.conn.prepareStatement("INSERT INTO tabela (coluna) VALUES (?)", PreparedStatement.RETURN_GENERATED_KEYS);
pst.setString(1, mod.getColuna());
.........
pst.executeUpdate();
conecta.rs = pst.getGeneratedKeys();
while (conecta.rs.next()) {
idObj = conecta.rs.getInt(1);
JOptionPane.showMessageDialog(null, "O ID deste cadastro é: " + idObj);
}
EDIT:
cone…
rodriguesabner 9 de mai. de 2019
Deu uma olhada nesse link que enviei?
Jonathan_Medeiros 9 de mai. de 2019
O erro indica que a coluna não existe na tabela indicada.
Para casos em que a tabela ainda não possua registros você pode tratar a Query utilizando um coalesce caso o retorno seja nulo.
Exemplo:
SELECT COALESCE(MAX(ID), 0) + 1 AS ID_ATUAL FROM TABELA;
Desta forma o coalesce trata qualquer retorno nulo e a soma incrementa o id, fazendo com que sempre retorne o maior id + 1.
rodriguesabner 10 de mai. de 2019
Não tem muito segredo, traduzindo para o seu código:
ps = ( java . sql . PreparedStatement ) con . prepareStatement ( sql , PreparedStatement . RETURN_GENERATED_KEYS );
rs = ps . getGeneratedKeys ();
while ( rs . next ()) {
idObj = rs.getInt(1) ;
JOptionPane.showMessageDialog(null, "O ID deste cadastro é: " + idObj) ;
}
FacaNaCaveira 10 de mai. de 2019
Fala ai @vze o seu problema é que na instrução SQL a seguir voce não deu um alias para a coluna aonde aparece o MAX(id_aluno)
sql = “ SELECT MAX ( id_aluno ) FROM ALUNO ” ;
ps = ( java . sql . PreparedStatement ) con . prepareStatement ( sql );
ResultSet rs = ps . executeQuery ();
int id = rs . getInt ( “ id_aluno ” );
voce deveria usar assim:
sql = “SELECT MAX(id_aluno) <strong> AS ‘id_aluno’</strong> FROM ALUNO”;
ps = (java.sql.PreparedStatement) con.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int id = rs.getInt(“id_aluno”);
Abraços
Max
FacaNaCaveira 10 de mai. de 2019
@vze qual banco vc esta utilizando? Sql Server? Oracle? Mysql? Postgree?
Pode ser as plicas, bota o sql assim:
SELECT MAX(id_aluno) AS idaluno FROM ALUNO
rodriguesabner 11 de mai. de 2019
FOI O CÓDIGO QUE EU TE PASSEEEEEEEEEEEEEEEEEEEEI!!! Difícil eu pistolar, mas pelo amor hein…