Problema com Inserção no MySQL com GUI

Oi, esta ocorrendo alguns erros no código, e estou fazendo um teste apenas para 2 campos, o o CPF e Senha (para funcionando, depois faço os outros).
Se alguem puder ajudar… Obrigado

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        try{ //tratamento de erros
        Class.forName("com.mysql.jdbc.Driver");//busca Driver
        //conecta no BD
        Connection con = DriverManager.getConnection("jdbc:mysql://localhost/sgev","root","");
        Statement stmt = con.createStatement(); //objeto comdo sql
        String CadNome = jTextField1.getText(); //obtém nome digitado
        int CadMat=Integer.parseInt( jTextField2.getText() );
        stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +
        CadMat + " ',' " +
        CadNome + " ' ) " );
        JOptionPane.showMessageDialog( this, " Dados Salvos! ");
        con.close(); // fecha conexão com BD
        } catch( SQLException e){ //trata os erros
        JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " +
        e.getMessage() );
        // TODO add your handling code here:
    }                                        

Colega, acho que um post como esse tem grande chance de ficar largado por aí, pelos seguintes problemas:

1 - Você não informa qual(is) erro(s) exatamente ocorrem;
2 - Se seu código tem um problema, poste somente o trecho onde provavelmente ocorre esse problema;
3 - você menciona uma coisa na descrição do problema e está fazendo ao que parece outra… disse que está inserindo CPF e senha, quando seu insert se refere a outros campos…

Bem, não sou moderador e não vou ficar pegando no seu pé por isso. A intenção é manter qualidade no fórum. Mas dê uma olhada nestas linhas:

 stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +  
         CadMat + " ',' " +  
         CadNome + " ' ) " ); 

Se Matricula é um int, não precisa ser envolvido por essas aspas simples que estão entrando na montagem do insert. Ficaria então assim:

 stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values ( " +  
         CadMat + " ,' " +  
         CadNome + " ' ) " ); 

Agora, fora as broncas (rsrsrsrs) um conselho de ouro: estude o uso de PreparedStatement e largue isso de montar comandos emendando Strings!! No dia que você tiver que inserir uma Joana D’Arc saberá do que estou falando.

Arrumei, é muito tempo sem usar forum hehe Valeu pelas dicas.
Mas não vi diferença com o código abaixo que você “editou”…

[quote=ADEMILTON]Colega, acho que um post como esse tem grande chance de ficar largado por aí, pelos seguintes problemas:

1 - Você não informa qual(is) erro(s) exatamente ocorrem;
2 - Se seu código tem um problema, poste somente o trecho onde provavelmente ocorre esse problema;
3 - você menciona uma coisa na descrição do problema e está fazendo ao que parece outra… disse que está inserindo CPF e senha, quando seu insert se refere a outros campos…

Bem, não sou moderador e não vou ficar pegando no seu pé por isso. A intenção é manter qualidade no fórum. Mas dê uma olhada nestas linhas:

 stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " +  
         CadMat + " ',' " +  
         CadNome + " ' ) " ); 

Se Matricula é um int, não precisa ser envolvido por essas aspas simples que estão entrando na montagem do insert. Ficaria então assim:

 stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values ( " +  
         CadMat + " ,' " +  
         CadNome + " ' ) " ); 

Agora, fora as broncas (rsrsrsrs) um conselho de ouro: estude o uso de PreparedStatement e largue isso de montar comandos emendando Strings!! No dia que você tiver que inserir uma Joana D’Arc saberá do que estou falando.

[/quote]

Vamos dar um zoom então…

perceba ao final da linha, depois da palavra “values” estava assim:

depois de editado ficou assim:

e na linha abaixo, só o trecho imediatamente antes da vírgula. Estava assim:

ficou assim:

“Arrumou” = conseguiu resolver? coloque “[RESOLVIDO]” no tópico.

Ficaria assim?

    stmt.executeUpdate( "insert into Cliente (Senha, CPF) values ( " +
        pf_pass + " ,' " +
        pf_cpf + " ' ) " );

E não deu certo, o erro ainda persiste… “Cannot find symbol

Coloquei em uma linha só, mais facil de se visualizar, mas o erro da linha sumiu, mas tem erro na parte abaixo dessa…

Assim ficou certo (confere se era isso mesmo)

E a parte que esta com erro é essa aqui:

[code] public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

        public void run() {
            new Cadastrar().setVisible(true);[/code]

Consegui arrumar o stmt, mas agora esta dando problema no driver do MySQL. Já joguei o driver na Biblioteca do NetBeans, e o codigo esta assim:

[quote=Vitoriano]Consegui arrumar o stmt, mas agora esta dando problema no driver do MySQL. Já joguei o driver na Biblioteca do NetBeans, e o codigo esta assim:

Arrumei o problema do Driver. Mas apareceu um do MySQL agora… O código ficou:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) { try{ try { //busca Driver Class.forName("com.mysql.jdbc.Driver"); //busca Driver } catch (ClassNotFoundException ex) { Logger.getLogger(Cadastrar.class.getName()).log(Level.SEVERE, null, ex); } //conecta no BD Connection con = DriverManager.getConnection("jdbc:mysql://localhost/sgev","root",""); Statement stmt = con.createStatement(); //objeto comdo sql JPasswordField pf_pass = jPasswordField1; String pf_cpf = jTextField11.getText(); stmt.executeUpdate("insert into cliente (pf_cpf, pf_pass) values ('jTextField11' , 'jPasswordField1') " ); JOptionPane.showMessageDialog( this, " Dados Salvos! "); con.close(); // fecha conexão com BD } catch( SQLException e){ //trata os erros JOptionPane.showMessageDialog(this, "Erro Cmdo SQL " + e.getMessage() );

E o problema que dá é: Unknown column ‘pf_pass’ in 'field list’
No BD o campo pf_pass é um char.