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

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

Quando tento rodar o programa para gerar mais resultados no BD, informa que ja tenho a intrada da id zero, e não consigo gerar alem disto, se eu deletar o id zero ele gera o resultado normalmente, mas não vai alem disso, tambem não esta mostrando o resultado do resultSet.

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

public class TestaInsercao { public static void main(String[] args) throws SQLException {

String nome = "Notebook"; String descricao = "Notebook i5";

Connection connection = Database.getConnection();

String sql = ("insert into produto (nome, descricao) values (' "+ nome +" ', ' "+ descricao +" ')");

Statement statement = connection.createStatement(); boolean resultado = statement.execute(sql, 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();

}

}

2 respostas
solução!

RESOLVIDO! Tinha colocado uma primary key na id, e era isso que estava causando o erro

''' CORREÇÂO: Fiz esta atividade usando o MySQL, e se você usar o exemplo que temos aqui no Alura, while (resultSet.next()) { String id = resultSet.getString("id"); System.out.println(id + " gerado"); } temos o seguinte erro: (java.sql.SQLException: Column 'id' not found.). Neste caso você resolve da seguinte maneira, na linha: String id = resultSet.getString("id"); temos que substituir a .getString("id") por .getString(1). Fazendo isso funciona corretamente. Segue o link da resolção: http://javafree.uol.com.br/topic-893888-erro-StatementRETURN_GENERATED_KEYS.html '''