Envio de dados para o Mysql

4 respostas
jose_antonio_fernand

Boa noite a todos, criei um form com vários JTextField e no final do form tem um JButton para que quando cliquo neste, ele envia os dados digitados no form para um banco de dados Mysql, só que consigo fazer a conexão com o banco e quando cliquo em enviar aparece a mensagen " Ação não realizada com sucesso". Onde estou errando que não consigo enviar os dados para o banco?
Tenho neste formulário vário JTextField e JButton, eu quero prencher o formulario com so dados dos respectivos campos, depois clicar em enviar e o sistema enviar as informaçoes para o banco de dados membros(Mysql). Não consegui entender onde estou errando. Alguem pode me ajudar.
segue o código.

public void enviar() throws ClassNotFoundException   
    {                   
        Connection con = null;     
    Statement stmt = null;     
           
      try   
          {     
          Class.forName("org.gjt.mm.mysql.Driver");                 
          String url="jdbc:mysql://localhost/cadastros";;     
          String user="root";     
          String pass="2017";     
          con = DriverManager.getConnection(url, user, pass);     
          stmt = con.createStatement();     
          stmt.executeUpdate("INSERT INTO membros(Integer m_codigo, String m_nome, String m_end, String m_cidade, String m_congreg, String m_bairro, String m_uf, String m_pai, String m_mae, String m_sexo, String m_cargo, String m_estado_civil, String m_localbatismo, DATE m_databatismo, DATE m_datanascimento, Integer m_rg, Integer m_cpf VALUES("+ jf_codigo+",'"+ jf_nome +"','"+   
                      jf_end +"', '"+jf_cidade +"', '"+ jcb_congreg +"', '"+jcb_bairro +"', '"+ jcb_uf +"', '"+jf_pai+"', '"+jf_mae+"', '"+jcp_sexo+"', '"+jcb_cargo+"', '"+jcb_estado_civil+"', '"+jf_local_batismo+"', "+jf_data_batismo+", "+jf_data_nascimento+","+jf_rg+", "+jf_cpf+"))");   
              stmt = statement.executeUpdate("select * from membros");   
                             
              ResultSet enviar = statement.executeUpdate();       
               while(enviar.next())     
              {         
              Integer codigo = enviar.getInt("Membros");//o parâmetro é o nome da coluna   
              String nome = enviar.getString("m_nome");   
              String end  = enviar.getString("m_end");   
              String cidade = enviar.getString("m_cidade");   
              String congreg = enviar.getString("m_congreg");   
              String bairro = enviar.getString("m_bairro");   
              String uf = enviar.getString("m_uf");   
              String pai = enviar.getString("m_pai");   
              String mae = enviar.getString("m_mae");   
              String sexo = enviar.getString("m_sexo");   
              String cargo = enviar.getString("m_cargo");   
              String estado_civil = enviar.getString("m_estado_civil");   
              String local_batismo = enviar.getString("m_localbatismo");   
              Integer data_batismo = enviar.getInt("m_databatismo");   
              Integer data_nascimento = enviar.getInt("m_datanascimento");   
              Integer rg = enviar.getInt("m_rg");   
              Integer cpf = enviar.getInt("m_cpf");     
               
              enviar mem = new enviar();   
             
                 
              {   
               JOptionPane.showMessageDialog(null, "Ação realizada com sucesso");     
              }   
              }     
             }   
             catch (SQLException e)   
             {     
             JOptionPane.showMessageDialog(null, "Ação não realizada com sucesso");     
             }     [code]

4 Respostas

G

Cola o SQLException aqui para vermos o erro.

A
jose_antonio fernando:
Boa noite a todos, criei um form com vários JTextField e no final do form tem um JButton para que quando cliquo neste, ele envia os dados digitados no form para um banco de dados Mysql, só que consigo fazer a conexão com o banco e quando cliquo em enviar aparece a mensagen " Ação não realizada com sucesso". Onde estou errando que não consigo enviar os dados para o banco? Tenho neste formulário vário JTextField e JButton, eu quero prencher o formulario com so dados dos respectivos campos, depois clicar em enviar e o sistema enviar as informaçoes para o banco de dados membros(Mysql). Não consegui entender onde estou errando. Alguem pode me ajudar. segue o código.
public void enviar() throws ClassNotFoundException   
    {                   
        Connection con = null;     
    Statement stmt = null;     
           
      try   
          {     
          Class.forName("org.gjt.mm.mysql.Driver");                 
          String url="jdbc:mysql://localhost/cadastros";;     
          String user="root";     
          String pass="2017";     
          con = DriverManager.getConnection(url, user, pass);     
          stmt = con.createStatement();     
          stmt.executeUpdate("INSERT INTO membros(Integer m_codigo, String m_nome, String m_end, String m_cidade, String m_congreg, String m_bairro, String m_uf, String m_pai, String m_mae, String m_sexo, String m_cargo, String m_estado_civil, String m_localbatismo, DATE m_databatismo, DATE m_datanascimento, Integer m_rg, Integer m_cpf VALUES("+ jf_codigo+",'"+ jf_nome +"','"+   
                      jf_end +"', '"+jf_cidade +"', '"+ jcb_congreg +"', '"+jcb_bairro +"', '"+ jcb_uf +"', '"+jf_pai+"', '"+jf_mae+"', '"+jcp_sexo+"', '"+jcb_cargo+"', '"+jcb_estado_civil+"', '"+jf_local_batismo+"', "+jf_data_batismo+", "+jf_data_nascimento+","+jf_rg+", "+jf_cpf+"))");   
              stmt = statement.executeUpdate("select * from membros");   
                             
              ResultSet enviar = statement.executeUpdate();       
               while(enviar.next())     
              {         
              Integer codigo = enviar.getInt("Membros");//o parâmetro é o nome da coluna   
              String nome = enviar.getString("m_nome");   
              String end  = enviar.getString("m_end");   
              String cidade = enviar.getString("m_cidade");   
              String congreg = enviar.getString("m_congreg");   
              String bairro = enviar.getString("m_bairro");   
              String uf = enviar.getString("m_uf");   
              String pai = enviar.getString("m_pai");   
              String mae = enviar.getString("m_mae");   
              String sexo = enviar.getString("m_sexo");   
              String cargo = enviar.getString("m_cargo");   
              String estado_civil = enviar.getString("m_estado_civil");   
              String local_batismo = enviar.getString("m_localbatismo");   
              Integer data_batismo = enviar.getInt("m_databatismo");   
              Integer data_nascimento = enviar.getInt("m_datanascimento");   
              Integer rg = enviar.getInt("m_rg");   
              Integer cpf = enviar.getInt("m_cpf");     
               
              enviar mem = new enviar();   
             
                 
              {   
               JOptionPane.showMessageDialog(null, "Ação realizada com sucesso");     
              }   
              }     
             }   
             catch (SQLException e)   
             {     
             JOptionPane.showMessageDialog(null, "Ação não realizada com sucesso");     
             }     [code]

Bom.. primeiro:

Quando for montar uma string para fazer um insert/update no banco de dados, utilize parametros.. (PreparedStatement) para evitar SQL injection; segundo: quando vc executa o select, vc deve fazer da seguinte forma:
Statement statement = con.createStatement();
ResultSet rs = statement.execute("select * from membros");
//percorra e preencha seu objeto
Outra coisa... na linha 39 a intenção era de fechar o corpo do while?

edit: outra coisa q vi agora.. veja o nome de seus campos, é assim mesmo?!?!: Integer m_codigo ?!?!?

a primeira vista e com muito sono, vejo esses erros... espero ter ajudado.. até mais

Anime

Ja vi esse filme… :stuck_out_tongue:

jose_antonio_fernand

No codigo completo está fechada a “aspa }”, a mensagem de erro que aparece é a seguinte

catch (SQLException e) { JOptionPane.showMessageDialog(null, "Ação não realizada com sucesso"); e.getErrorCode();
É como os dados preenchido no formulario não fosse aceito , porque esta mensagem aparece com o formulario vazio como também com ele preenchido.
Qual o comando que devo usar para que quando eu clicar no JButton enviar ele receba todos os parametros digitados no formulário e envie para o banco de dados ?

Cara sinceramente não sei onde estou errando…

Criado 23 de janeiro de 2011
Ultima resposta 24 de jan. de 2011
Respostas 4
Participantes 4