Error causado por caracteres especiais

Ai Galera blz…

o problema e o seguinte…

Quando vou concatenar um campo de um insert e o campo possui aspas simples acontece um erro na minha query…

insert into TABELA values(’‘TESTE’’);

Acaba que fica com duas aspas simples, ao inves de uma…

Em php tem o stripslashes, que resolveria o problema…
Em java como eu posso resolver…

vlw!!!

Não concatene valores em uma query, use PreparedStatement:

[code]PreparedStatement stmt = conexao.prepareStatement(“insert into TABELA values (?)”);

stmt.setString(1, “TESTE”);

stmt.executeUpdate();[/code]

Bem, eu uso sempre o Statement normal não estou acustumado a usar o PreparedStatement…

Não teria um outro jeito de fazer não???

Dependendo do seu banco é só colocar o valor entre aspas duplas.

Ex.:

[code]Statement stmt = conexao.createStatement();

stmt.executeUpdate(“insert into tabela values(”"+valor+"")");[/code]

Mas você pode ter muitos problemas com Statement como SQL Injection, alem de deixar seu código muito poluído e de dificil entendimento.

Tipo,

De preferencia sempre adicione parametros usando os metodos que o Statement ou o PreparedStatement dispoe.

stm.setLong( numeroNaOrdemDaSQL , objeto.getLong() );
stm.setLong( numeroNaOrdemDaSQL , objeto.getUmaString() );

Sempre de preferencia ao PreparedStatement, porque o banco de dados guarda o plano/caminho que fez para resolver a query. É como se ele guardasse a query em um cache e muda apenas as variáveis, otimizando a consulta, aumentando eficiência, etc.

www.jornaljava.com

http://feeds.feedburner.com/jornaljava