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

Dúvida no Ex. 2 da Aula 2 - Inserindo e removendo dados

Olá pessoal estou com um probleminha nesse código aqui:

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.PreparedStatement;

public class TestaInserção {
    public static void main(String[] args) throws SQLException {
        String nome = "Notebook e7";
        String descricao = "Notebook Caro";
        Connection connection = DataBase.getConnection();
        System.out.println("Adiquirindo Conexão . . .");
        String sql = "INSERT INTO produtos (nome, descriçao) VALUES(?, ?)";
        PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql, PreparedStatement.RETURN_GENERATED_KEYS);
        ps.setString(1, nome);
        ps.setString(2, descricao);
        ps.execute();
        ResultSet RS = ps.getGeneratedKeys();
        String ID = RS.getString("id");
        while(RS.next()){
        System.out.println(ID);
        }
        RS.close();
        ps.close();
        connection.close();
    }
}

Aparentemente tudo ok, né? Infelizmente a saída do console é essa: Adiquirindo Conexão . . . Exception in thread "main" java.sql.SQLException: Column 'id' not found. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:959) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:862) at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1076) at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5206) at TestaInserção.main(TestaInserção.java:19) Picked up _JAVA_OPTIONS: -Xverify:none

Ele até executa o query e o statment, no caso um PS, porém nunca consigo retornar o ID, detalhe estou usando MYSQL e não hsqlServer. . . Alguém poderia me dar um luz?

4 respostas
solução!

Você conferiu no banco, especificamente na sua tabela se há uma coluna / campo chamado id? De acordo com o erro, ele tá procurando uma coluna chamado id e não está encontrando.

Sim eu conferi e existe o campo id e ele é auto incrementado, porém por ele ser chave primaria não consigo retorná-lo de jeito nenhum.

Testarei seu código, e postarei uma resposta. Peço que aguarde por favor!

Faça o seguinte: Substitua o String ID = RS.getString("id"); por String ID = RS.getString(1)