Insert em MySQL [RESOLVIDO]

11 respostas
pedroroxd

Pessoal, eu to com 1 projetinho aki pra dar insert num banco de dados.
Eu uso uns jTextField que o usuário preenche com os dados, e quando clica no botão dá insert (Olha a Imagem no Attachment).

Tipo, o comando pra inserir é esse:
String sql = “INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(3, ‘Teste’,‘Rua 2’, ‘34731111’, ‘88111234’, ‘[email removido]’)”;

Agora eu quero colocar usando o preenchimento dos JTextFields… Então colokei:

String Iid, Inome, Iendereco, Itelefone, Icelular,Iemail;
 Iid= jTextField1.getText();
 Inome= jTextField2.getText();
 Iendereco= jTextField3.getText();
 Itelefone= jTextField4.getText();
 Icelular= jTextField4.getText();
 Iemail= jTextField6.getText();

Depois:
String sql = "INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(“Iid”,“Inome”,“Iendereco”,“Itelefone”,“Icelular”,“Iemail”) ";

Mas ele não dexa colocar essas variáveis dentro de values…
Ele não deixa colocar nada que contenha aspas duplas dentro de values (fala que ta faltando :wink:
E agora, o que eu faço?

Vlw…


11 Respostas

edmarr

De uma olhada heim

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

eh bem mais facil de manipular os parâmetros desta maneira .

pedroroxd

edmarr:
De uma olhada heim

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

eh bem mais facil de manipular os parâmetros desta maneira .

Pow…
dei 1 olhada lah, não intendi muita coisa não…
Sou meio noob em java ainda =P
Comecei faz 1 semana…

edmarr

Vc ira escrever algo parecido com isto .

DB db = null;
        Connection con = null;
        PreparedStatement    st = null;

        StringBuffer sql = new StringBuffer();

         try {
            db = new DB();
            con = db.getConnection(usuarioDB, senhaDB);
            sql.append("insert tabela SET STATUS  = ?   WHERE codigo = ?");
            st =con.prepareStatement(sql.toString());
            st.setInt(1, obj.getStatus());
            st.setInt(2, obj.getCodigo());
           
             st.execute();
   
         } catch(Exception e){
             erro = " Descricao: " + e.getMessage();
         }
A
bom cara primeiro voce ja deve ter criado a tabela e pelo jeito como voce postou acretito ser todas do tipo var char no banco de dados

voce esta usando

String sql = INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(3, Teste,Rua 2, 34731111, 88111234, [email removido]);

mas deveria estar desse jeito

String sql = INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(’”+3+", ‘"+Teste+",’"+Rua 2+", ‘"+34731111+",’"+88111234+", ‘"+[email removido]+")";

acho que é isso mas posso estar errado pois não uso o mysql
pedroroxd

Pessoal, esse funciona:
String sql = “INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(3, ‘Teste’,‘Rua 2’, ‘34731111’, ‘88111234’, ‘[email removido]’)”;

É esse que não funciona, e quero fazer funcionar, usando os jTextField…
String sql = "INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(“Iid”,“Inome”,“Iendereco”,“Itelefone”,“Icelular”,“Iemail”) ";

flaviojmendes

Tente assim:

String sql = “INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(’”+Iid+"’,’"+Inome+"’,’"+Iendereco+"’,’“Itelefone+”’,’"+Icelular+"’,’"+Iemail+"’)";

Abraço.

ctdaa

Então pedroroxd… voce tá concatenando os nomes das variáveis ao invés do seu conteúdo… coloca um println para ver o resultado do comando que ficou no sql:

String sql = "INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES("Iid","Inome","Iendereco","Itelefone","Icelular","Iemail") "; 
System.out.println("comando: " + sql);

Concatene a string com os valores das variáveis usando o +

pedroroxd

flaviojmendes:
Tente assim:

String sql = “INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES(’”+Iid+"’,’"+Inome+"’,’"+Iendereco+"’,’“Itelefone+”’,’"+Icelular+"’,’"+Iemail+"’)";

Abraço.

Vlw, deu certo =)

RESOLVIDO

R

Tente usar ResultSet e Statement, vai achar bastante coisa sobre ele no google.

Declarando:

public Statement stm; private ResultSet rs;

Na hora de conectar vc usa a linha abaixo, onde o con é seu connection.

stm = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);

E depois for fazer a inserção, use isso:

stm.execute("INSERT INTO cliente (id, Nome, endereço, telefone, celular, email) VALUES('" + Iid + "' ,'" + Inome + "', '" + Iendereco + "', '" + Itelefone + "', '" + Icelular + "', '" + Iemail + "')")

Espero ter ajudado!

pedroroxd

RESOLVIDO

leoramos

Pedro, tu já postou algo com relação a isso antes, e vou te dar a mesma resposta:

Usa PreparedStatement.

Assim tu não fica te matando com aspas e coisas do genero.

Criado 26 de agosto de 2009
Ultima resposta 26 de ago. de 2009
Respostas 11
Participantes 7