Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Não reconhece a coluna Id na hora de printar

Bom dia, realizei o procedimento abaixo e na hora de printar na tela ocorreu esse erro Exception in thread "main" java.sql.SQLException: Column 'id' not found. Essa coluna existe e eu consigo acessa-la através de um getResultSet();

Connection connection = Database.getConnection(); Statement statement = connection.createStatement(); boolean resultado = statement.execute( "insert into Produto (nome, descricao) values ('Notebook', 'Notebook i5')", Statement.RETURN_GENERATED_KEYS);

System.out.println(resultado);

ResultSet resultSet = statement.getGeneratedKeys();

while (resultSet.next()) {

String id = resultSet.getString("id"); System.out.println(id + "gerado"); } statement.close(); connection.close();

O erro pode ter sido na hora que eu criei a coluna o BD?

7 respostas

É possível que tenha sido erro na hora de criar sim. Vá no banco de dados e de um DESC produto; veja como está a estrutura da tabela, se não me engano essa coluna Id é um Integer, logo você deveria estar tentando pegar ela do ResultSet como getInt("id") também.

Analisa ai e testa pra ver. Abraço.

Obrigado pelo retorno, eu tentei com getInt, mas ocorreu o mesmo erro, no BD está assim:

Field | Type | Null | Key | Default | Extra |

| id | int(11) | NO | PRI | NULL | auto_increment |

Qual valor o seu boolean resultado está retornando? Chega a voltar um true dando a entender que a operação foi feita? No banco o registro foi criado e tem o id? Só não voltou no ResultSet? Se puder detalhar mais ajudará.

Ele cria tudo certinho, retorna um false, só na hora de retornar o Id criado da esse erro.

Está usando as mesmas versões de Java e MySQL que são usadas no curso?

Pode ser isso, o curso esta usando hspqdb e eu estou usando Mysql, mas eu fiz todas as alterações necessárias, funcionou tudo menos essa parte.

solução!

Ah é verdade, o curso usa HSQLDB, quando fiz esse curso usei o HSQL também, por isso estava olhando o código aqui e não tive problema nenhum com isso.

Que tal só fazer um teste? Configura o HSQL que é simples e rápido e testa. Se de certo, já isolou o problema e sabe onde tem que pesquisar para achar a solução.

Abraço.