1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Erro na lógica do DAO

Fala galera. Tenho meu banco de dados com a tablela 'Contato' e quero inserir dados nela usando java. Criei o Contato com os atributos referente aos campos da minha tabela. Criei, na classe ContatoDAO, o método para inserir contatos na minha tabela. Segue o código das duas classes.

public class ContatoDAO {

    private Connection con;

    public ContatoDAO() {
        this.con = new ConectionFactory().getConnection();
    }

    public void inserir(Contato contato) throws SQLException {

        try {
            String sql = "insert into Contato (id, nome, email, endereco)" + "values(?, ?, ?, ?)";

            PreparedStatement stmt = (PreparedStatement) con.prepareStatement(sql);
            stmt.setLong(1, 1);
            stmt.setString(2, contato.getNome());
            stmt.setString(3, contato.getEmail());
            stmt.setString(4, contato.getEndereco());

            Boolean executado = stmt.execute();

            if (executado)
                System.out.println("Dados inserdos com sucesso");
            else
                System.out.println("Dados não foram inseridos com sucesso");
        } catch (SQLException e) {
            System.out.println("Erro no sql");
        }

    }

}

Segue abaixo a Classe com o método Main.

public class TestaInsere {

    public static void main(String[] args) {
        Contato contato = new Contato();
        ContatoDAO contatoDAO = new ContatoDAO();
        contato.setNome("João da Silva");
        contato.setEmail("joaodasilva@algumacoisa.com");
        contato.setEndereco("Centro");
        contato.setId(1);

        try {
            contatoDAO.inserir(contato);
        } catch (SQLException e) {

            System.out.println("Deu ruim");
        }

    }

}

Tenho a seguinte saída no console: "Dados não foram inseridos com sucesso"

Alguém poderia me ajudar a entender pq não estou conseguindo inserir no banco? Desde já agradeço.

  • O campo id no banco é serial?? Especifique o erro que aparece no console.

    Sophie Vergueiro   08 de dez de 2015
  • Em seu BD já não existe o id = 1 ? Se já existe vai dar erro se for uma chave primária ...

    Aleksandro   08 de dez de 2015
  • Não tem erro nenhum no console. Fiz o seguinte, retirei todos os registros no meu banco e pedi para inserir, ele insere, mas antes aparece essa mensagem: "Dados não foram inseridos com sucesso", que é quando o retorno do stmt.execute() = 0, ou seja, não inseriu nada.

    Marcelo Risso   08 de dez de 2015
  • Por favor adicione a stacktrace para que possamos analisar melhor.

    joaoyuki   08 de dez de 2015
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags dao ou faça a sua própria pergunta.