Aspas simples em jtextfield [ Resolvido ]

ola como resolver isso, toda vez q eu coloco aspas simples dentro de um jtextfield da erro de syntax ao gravar no banco…

            [code]String sqlinsert ="INSERT INTO TABELA ( ENDERECO, BAIRRO, " +
                    "NUMERO, CIDADE, UF, CEP, TELEFONE_1, TELEFONE_2, EMAIL, OBS, TIPO) values ('"+
               tf_endereco.getText()+"','"+
               tf_bairro.getText()+"','"+
               tf_numero.getText()+"','"+
               tf_cidade.getText()+"','"+
               tf_uf.getText()+"','"+
               ft_cep.getText()+"','"+
               ft_telefone1.getText()+"','"+
               ft_telefone1.getText()+"','"+
               tf_email.getText()+"','"+
               ta_obs.getText()+"','"+
               tipo+"')";[/code]

Olá,
filtra o campo e substitui cada aspa simples por \’

Att.

[quote=Adelar]Olá,
filtra o campo e substitui cada aspa simples por \’

Att.[/quote]

desculpa ai mais eu nao entendi ! :slight_smile:
como q eu faço isso rs

Use um preparedStatement:

String sqlinsert ="INSERT INTO TABELA ( ENDERECO, BAIRRO, NUMERO, CIDADE, UF, CEP, TELEFONE_1, TELEFONE_2, EMAIL, OBS, TIPO) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "; PreparedStament ps = conn.prepareStatement(sqlinsert); ps.setString(1, tf_endereco.getText()); ps.setBairro(2, tf_bairro.getText()); ps.setInt(3, Integer.parseInt(tf_numero.getText()); ps.setString(4, tf_cidade.getText()); ps.setString(5, tf_uf.getText()); ps,setString(6, ft_cep.getText()); ps.setString(7, ft_telefone1.getText()); ps.setString(8, ft_telefone2.getText()); ps.setString(9, tf_email.getText()); ps.setString(10, ta_obs.getText()); ps.setInt(11, tipo); ps.executeUpdate();

O PreparedStatement trata automaticamente:
Aspas simples dentro de Strings (note que vc não precisa colocar as ? entre aspas);
Tipos primitivos;
Tipos de data;

Ele impede a falha de SQL Injection, que existe na concatenação direta de sqls.

PS: Note que vc concatenou por engano 2 vezes o telefone 1 ali em cima.

[quote=ViniGodoy]Use um preparedStatement:

String sqlinsert ="INSERT INTO TABELA ( ENDERECO, BAIRRO, NUMERO, CIDADE, UF, CEP, TELEFONE_1, TELEFONE_2, EMAIL, OBS, TIPO) " + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "; PreparedStament ps = conn.prepareStatement(sqlinsert); ps.setString(1, tf_endereco.getText()); ps.setBairro(2, tf_bairro.getText()); ps.setInt(3, Integer.parseInt(tf_numero.getText()); ps.setString(4, tf_cidade.getText()); ps.setString(5, tf_uf.getText()); ps,setString(6, ft_cep.getText()); ps.setString(7, ft_telefone1.getText()); ps.setString(8, ft_telefone2.getText()); ps.setString(9, tf_email.getText()); ps.setString(10, ta_obs.getText()); ps.setInt(11, tipo); ps.executeUpdate();

O PreparedStatement trata automaticamente:
Aspas simples dentro de Strings (note que vc não precisa colocar as ? entre aspas);
Tipos primitivos;
Tipos de data;

Ele impede a falha de SQL Injection, que existe na concatenação direta de sqls.

PS: Note que vc concatenou por engano 2 vezes o telefone 1 ali em cima.[/quote]

opaaaa obrigado pela sugestao
valeuu