Ola pessoal, tenho um problema que me deixa intrigado, estou fazendo um insert
no banco usandojdbc
com mysql
, porém na hora de buscar a coluna id com o ResultSet
, rs.getInt("id")
exatamente nesta linha o compilador dispara uma exceção, dizendo que a coluna não existe, estou pilhado pq sei que a coluna existe no banco e está como int
vejam o código abaixo por favor.
Estou na luta mas se por acaso alguém de vocês conseguir resolver ficarei muito feliz.
Suspeito de bug no eclipse pois esse método la classe é sobrecarregado com duas informações a primeira é a StringColum e a segunda é o IndexColum qd uso a IndexColum ou seja rs.getInt(1) Sistema funciona, quando uso o StringColum ou seja rs.getInt("id") é onde dá o pau.
package br.com.alura.jdbc;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import br.com.alura.jdbc.modelo.Produto;
public class TestaInsercaoDeProdutoVERCOLUNARESULTSET {
public static void main(String[] args) throws SQLException {
Produto mesa = new Produto("Mesa Azul", "Mesa com 4 pés");
try (Connection connection = Database.getConnection()) {
String sql = "INSERT INTO produto (nome, descricao) VALUES (? , ?)";
try (PreparedStatement statemet = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
statemet.setString(1, mesa.getNome());
statemet.setString(2, mesa.getDescricao());
statemet.execute();
try (ResultSet rs = statemet.getGeneratedKeys()) {
if (rs.next()) {
int id = rs.getInt("id");
mesa.setId(id);
System.out.println(mesa);
}
}
}
}
}
}
Exception in thread "main" java.sql.SQLException: Column 'id' not found.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.result.ResultSetImpl.findColumn(ResultSetImpl.java:580)
at com.mysql.cj.jdbc.result.ResultSetImpl.getInt(ResultSetImpl.java:915)
at br.com.alura.jdbc.TestaInsercaoDeProdutoVERCOLUNARESULTSET.main(TestaInsercaoDeProdutoVERCOLUNARESULTSET.java:29)