Gravar em BD mysql

3 respostas
R

eu preciso fazer ua gravação em Banco, no caso mysql...

eu digitei o seguinte código:

public void grava(String mensagem){
        String msg = campo_add.getText().toString();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con1 = DriverManager.getConnection("jdbc:mysql://mysql.porta80.com.br/macdigitalworks","macdigitalworks","dm1557724830wy63");
            
            Statement stmt1 = con1.createStatement();
            
            stmt1.executeUpdate("INSERT INTO brincando_com_java (conteudo) VALUES ("+campo_add.getText()+")");
            stmt1.close();          
            con1.close();
                        
        }catch(Exception e){
            System.out.println("erro na conexao do mysql em GRAVA");
        }
        lista();
    }

porém ele só grava se no CAMPO_ADD conter numeros, mesmo eu colocando um toString, ele só grava se o conteudo for numeros...

espero respostas, obrigado...

3 Respostas

R

Da uma debbugada e vê quais os valores nas duas situações…

melhor, debbuga, e pega a query que ele monta querndo tu passa numeros e quando não passa numeros… provavelmente essa comparação vai te esclarecer muita coisa…

[]'s

C
Seguinte... Tente assim....
public void gravaBanco() {
      Connection c = suaConexao;
      String sql = "INSERT INTO suaTabela VALUES(?)";
      String seuCampo = seuJTextField.getText();

      try {
         PreparedStatement ps = c.prepareStatement();
         ps.setString(1,seuCampo);
         ps.executeUpdate();

      }catch(Exception ex) {
         ex.printStackTrace();
      }
   }
Ai é só adaptar pra ti e boa, fica muito melhor. Na minha opnião o Statement é muito porco.
M

Olá use a idéia de parâmetros passada pelo Cassolato, por um motivo simples: você não precisará formatar/converter seu dados para o formato aceito pelo banco, com o por exemplo colocar aspas simples ou coisa do tipo.

:okok:

Criado 9 de março de 2007
Ultima resposta 10 de mar. de 2007
Respostas 3
Participantes 4