incerção de dados no mysql através do java

2 respostas
S
to com um problema na incerção de dados no mysql eu só consigo inserir dados uma vez, e depois da erro na icerção segue o código:
public void cadastraClienteBD(String[] str){

         try {
               Class.forName(driver); 

               Connection conn = (Connection) DriverManager.getConnection(str_conn, usuario, senha);

               Statement stmt = (Statement) conn.createStatement();

               String cadCliente = "insert into tb_cliente(Cliente, EnderecoNum, Bairro, Cidade, Estado, CEP, CPF, DataC, email, TelRes, TelCom, TelCell) values(?,?,?,?,?,?,?,?,?,?,?,?);";

               try{
               PreparedStatement queryInsert = (PreparedStatement) conn.prepareStatement(cadCliente);
               queryInsert.setString(1, str[0]);
               queryInsert.setString(2, str[1]);
               queryInsert.setString(3, str[2]);
               queryInsert.setString(4, str[3]);
               queryInsert.setString(5, str[4]);
               queryInsert.setString(6, str[5]);
               queryInsert.setString(7, str[6]);
               queryInsert.setString(8, str[7]);
               queryInsert.setString(9, str[8]);
               queryInsert.setString(10, str[9]);
               queryInsert.setString(11, str[10]);
               queryInsert.setString(12, str[11]);
               queryInsert.execute();
               queryInsert.close();

               }catch(Exception exc){
                   JOptionPane.showMessageDialog(null, "Problema na inserção de dados");
               }
               }
        catch (ClassNotFoundException ex) {
             System.out.println("Não foi possível carregar o driver.");
             ex.printStackTrace();
        }
        catch (SQLException ex) {
             System.out.println("Problema com o SQL");
             ex.printStackTrace();
        }
    }

2 Respostas

M

na verdade eu sou bem “verde” em programação, mas a forma que eu faço é a seguinte
voce seta os dados para o objeto em outra classe da aplicação, passa por parametro e busca eles nesta, ex:
tirei o try/catch para resumir o meu ponto de vista.
Não sei se é esse o motivo do teu erro, mas tentei :oops:

public void cadastraClienteBD(Cliente c){   
  
      
               Class.forName(driver);   
  
               Connection conn = (Connection) DriverManager.getConnection(str_conn, usuario, senha);   
  
              Statement stmt = (Statement) conn.createStatement();    //não está sendo usado o Statement
  
               String cadCliente = "insert into tb_cliente(Cliente, EnderecoNum, Bairro, Cidade, Estado, CEP, CPF, DataC, email, TelRes, TelCom, TelCell) values(?,?,?,?,?,?,?,?,?,?,?,?);";   
  
       
               PreparedStatement queryInsert = (PreparedStatement) conn.prepareStatement(cadCliente);   
               queryInsert.setString(1, c.getCliente());   
               queryInsert.setString(2, c.getEnderecoNum());   
               queryInsert.setString(3, c.getBairro());   
               queryInsert.setString(4, c.getCidade());   
               queryInsert.setString(5, c.getEstado());   
               queryInsert.setString(6, c.getCEP());   
               queryInsert.setString(7, c.getCPF());   
               queryInsert.setString(8, c.getDataC());   
               queryInsert.setString(9, c.getEmail());   
               queryInsert.setString(10, c.getTelRes());   
               queryInsert.setString(11, c.getTelCom());   
               queryInsert.setString(12, c.getTelCell());   
               queryInsert.execute();   
               queryInsert.close();
S

Agradeço muito a ajuda
eu já resolvi
o problema é pq na minha tabela tinha um atributo como primary key sem auto incremento, por isso ele fazia apenas uma inserção

tbm começei a pouco tempo !

muito obrigado pela atenção !

Criado 7 de dezembro de 2010
Ultima resposta 8 de dez. de 2010
Respostas 2
Participantes 2