[Resolvido] Erro de SQL!

Galera ta dando erro de sql, como posso resolver???

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            
            Connection conn;
            
            conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/funcionario", "root", "11111");
          
            String query = "INSERT INTO dados_empreiteira("
                    + "contrato,"
                    + "nome_empresa,"
                    + "cnpj,"
                    + "insc_estadual,"
                    + "insc_municipal,"
                    + "endereco,"
                    + "bairro,"
                    + "cep,"
                    + "cidade,"
                    + "uf,"
                    + "fone_empresa,"
                    + "fone_cel_empresa,"
                    + "fax,"
                    + "email,"
                    + "nome_diretor,"
                    + "fone_diretor,"
                    + "email_diretor,"
                    + "nome_preposto1,"
                    + "fone_preposto1,"
                    + "email_preposto1"
                    + "nome_preposto2"
                    + "fone_preposto2"
                    + "email_preposto2) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";

            PreparedStatement stmt = conn.prepareStatement(query);

            stmt.setString(1, camp_contrato.getText());
            stmt.setString(2, camp_nome_empresa.getText());
            stmt.setString(3, camp_cnpj.getText());
            stmt.setString(4, camp_insc_estadual.getText());
            stmt.setString(5, camp_insc_municipal.getText());
            stmt.setString(6, camp_endereco.getText());
            stmt.setString(7, camp_bairro.getText());
            stmt.setString(8, camp_cep.getText());
            stmt.setString(9, camp_cidade.getText());
            stmt.setString(10, camp_uf.getText());
            stmt.setString(11, camp_fone_empresa.getText());
            stmt.setString(12, camp_celular_empresa.getText());
            stmt.setString(13, camp_fax.getText());
            stmt.setString(14, camp_email_empresa.getText());
            stmt.setString(15, camp_nome_diretor.getText());
            stmt.setString(16, camp_fone_diretor.getText());
            stmt.setString(17, camp_email_diretor.getText());
            stmt.setString(18, camp_nome_preposto1.getText());
            stmt.setString(19, camp_fone_preposto1.getText());
            stmt.setString(20, camp_email_preposto1.getText());
            stmt.setString(21, camp_nome_preposto2.getText());
            stmt.setString(22, camp_fone_preposto2.getText());
            stmt.setString(23, camp_email_preposto2.getText());

            stmt.executeUpdate(query); //quando eu tiro essa linha o codigo executa sem erro, mas não acontece nada com o banco ele não salva 

            stmt.close();
            conn.close();
            
            
        } catch (ClassNotFoundException ex) {
            
        } catch (SQLException e){
            System.out.println("Ocorreu um erro de SQL");
        }
       



    }

Esse e um codigo de actionperformed de um botão salvar!!!

valeu galera ajuda ai!!! :smiley:

Qual é o erro?

Ao invés de

stmt.executeUpdate(query); 

tente

stmt.executeUpdate(); 

Sem o parametro, por que você ja esta passando a sql no:

PreparedStatement stmt = conn.prepareStatement(query); 
stmt.execute(); 

Tenta dar esse comando no lugar do seu stmt.executeUpdate(query);

[quote=douglastc]stmt.execute();

Tenta dar esse comando no lugar do seu stmt.executeUpdate(query); [/quote]

Ainda Continu o (erro de SQL)!!! :cry:

Sim, mas qual erro? A minha bola de cristal está na revisão!

Apenas Aparece aconteceu um erro de sql!!! SQL Exception!!!

Cara… posta a StackTrace aqui…

É impossível estar aparecendo só isso pra ti…

Em algum lugar há um Log, alguma coisa…

Cara dê um commit que os dados serão atualizados.

poste o erro completo, pq faço usando preparedstatements e utilizo o método execute() e sempre dá certo

Olha esse trecho de código:

     } catch (ClassNotFoundException ex) {  
           
     } catch (SQLException e){  
         System.out.println("Ocorreu um erro de SQL");  
     }  
     

Você tá jogando fora toda a informação sobre o erro que aconteceu!

Coloca um ex.printStackTrace() pelo menos e mostra pra gente o que acontece.

[quote=AbelBueno]Olha esse trecho de código:

     } catch (ClassNotFoundException ex) {  
           
     } catch (SQLException e){  
         System.out.println("Ocorreu um erro de SQL");  
     }  
     

Você tá jogando fora toda a informação sobre o erro que aconteceu!

Coloca um ex.printStackTrace() pelo menos e mostra pra gente o que acontece.[/quote]

ondo coloco o ex.printStackTrace()

o erro que aparece pra mim é esse

Ocorreu um erro de SQL
Exception in thread “AWT-EventQueue-0” java.lang.RuntimeException: Uncompilable source code.

Fala Diego, estude sobre tratamento de Exceções pra entender mais a fundo o que está ocorrendo.

Mas seu cenário é basicamente esse:

Está dando um SQLException por algum motivo que não sabemos qual é… Você está capturando essa exceção, mas ao invés de tratá-la você está simplesmente imprimindo no Console a mensagem que está aparecendo para você nesse trecho

catch(SQLException e) { System.out.println("Ocorreu um erro de SQL"); }

Por isso essa é a única informação que você tem, bem percebido pelo Abel…

Coloque mais uma linha em seu código.

catch(SQLException e) { e.printStackTrace(); System.out.println("Ocorreu um erro de SQL"); }

E post aqui o erro que vai aparecer no seu console de saída.

Abs []

[quote=adriano_si]Fala Diego, estude sobre tratamento de Exceções pra entender mais a fundo o que está ocorrendo.

Mas seu cenário é basicamente esse:

Está dando um SQLException por algum motivo que não sabemos qual é… Você está capturando essa exceção, mas ao invés de tratá-la você está simplesmente imprimindo no Console a mensagem que está aparecendo para você nesse trecho

catch(SQLException e) { System.out.println("Ocorreu um erro de SQL"); }

Por isso essa é a única informação que você tem, bem percebido pelo Abel…

Coloque mais uma linha em seu código.

catch(SQLException e) { e.printStackTrace(); System.out.println("Ocorreu um erro de SQL"); }

E post aqui o erro que vai aparecer no seu console de saída.

Abs [][/quote]

bom galera funcionou agora, meu erro foi o seguinte os campos jtextfield estavam, como posso dizer ligados de forma errada com o banco de dados!!!

Solução!!!

Fui fazendo um por um!!!, no final descobri qual era o errado!!!

Galera valeu, muito obrigado mesmo, todas as vezes que eu postei minhas dúvidas aqui eu fui atendido!!!

Blz Diego, coloque no título do Tópico como [RESOLVIDO]

Outro detalhe, aprenda como tratar exceções, podia ter resolvido seu problema sem demorar tanto e sem ter que verificar TF por TF da tela pra saber onde estava o erro…

Esse seu tratamento de exceção está muito ruim, estude sobre e logo verás o resultado de saber manipular exceções.

Abs []

valeu vou estudar sim