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

Como verifico se um item esta na lista (ou melhor como pego um resultado de um comando sql)

public void verifica (Integrante integrante) throws SQLException {
        String nome = integrante.getNome();
        String nomeBanda = integrante.getNomeBanda();
        String sql ="SELECT FROM integrante  WHERE nome = '"+nome+"' and nomeBanda = '"+nomeBanda+"'";
        PreparedStatement retorno = new Pstmt().usa(connection, sql);
        if(...
    }
2 respostas
solução!

Fala ai Ricardo, tudo bem ?

Toda vez que fazemos uma busca você pode recuperar a resposta num objeto do tipo ResultSet e a partir dele consegue fazer as validações..

A gente mostra isso no curso.

Eu fiz igual ao curso, o problema é que agora esta dando erro (baixei o projeto do curso e o erro continuou), ... não sei se é por que estou usando o mySql agora.

Ele diz que a coluna id nao existe, mas ela esta la´:

+-----------+--------------+------+-----+---------+----------------+
| Field     | Type         | Null | Key | Default | Extra          |
+-----------+--------------+------+-----+---------+----------------+
| id        | int(11)      | NO   | PRI | NULL    | auto_increment |
| nome      | varchar(255) | NO   |     | NULL    |                |
| descricao | varchar(255) | NO   |     | NULL    |                |
+-----------+--------------+------+-----+---------+----------------+

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

public class TestaInsercao {

    public static void main(String[] args) throws SQLException {
        try (Connection connection = new ConnectionFactory().getConnectionMySQL()) {
            connection.setAutoCommit(false);
            String sql = "insert into produto (nome, descricao) values (?, ?)";
            try (PreparedStatement statement = connection.prepareStatement(sql,
                    Statement.RETURN_GENERATED_KEYS)) {
                adiciona("TV LCD", "32 polegadas", statement);
                adiciona("Blueray", "Full HDMI", statement);

                connection.commit();
                statement.close();
            } catch (Exception e) {
                connection.rollback();
                System.out.println("Rollback efetuado");
                e.printStackTrace();
            }
        }
    }

    private static void adiciona(String nome, String descricao,
            PreparedStatement statement) throws SQLException {
        if (nome.equals("Blueray")) {
            throw new IllegalArgumentException("Problema ocorrido");
        }
        statement.setString(1, nome);
        statement.setString(2, descricao);
        boolean resultado = statement.execute();
        System.out.println(resultado);
        try (ResultSet generatedKeys = statement.getGeneratedKeys()) {
            while (generatedKeys.next()) {
                long id = generatedKeys.getLong("id");
                // da erro nessa linha

                System.out.println("id gerado: " + id);
            }
        }
    }
}

Reposta do Console:
false
Exception in thread "main" java.sql.SQLException: Column 'id' not found.
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965)
    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:861)
    at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1080)
    at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2570)
    at NovoTeste.main(NovoTeste.java:21)