Como funciona o Statement vs PreparedStatement?

6 respostas
G

Olá pessoal, no uso de banco de dados, qual a diferença entre esses dois: Statement e PreparedStatement ? , já que ambos possuem os métodos “execute(), executeQuery(), executeUpdate()”…

Obrigado.

6 Respostas

R

O PreparedStatement é mais seguro porque evita o uso de SQL Injection, deixa o código mais enxuto (evitando um bando de concatenação de string).

Além disso, o PreparedStatement é compilado pelo SGBD, o que significa que se você utiliza a mesma query muitas vezes (só mudando, por exemplo, algumas condições do where etc) vc ganha em performance, pq ele já deixa a PreparedStatement compilada, apenas a executa com os novos parâmetros.

ok?

R

Aliás, o próprio Javadoc possui uma breve explicação sobre PreparedStatement e diz que Statement deve ser utilizada com consultas fixas.

R

Se for usar um deles, use o PreparedStatement. Além de tudo que já falaram aqui no seu post, ele ainda torna mais fácil o desenvolvimento com querys em relação ao Statement.

Se quiser algum tutorial: jdbc-com-banco-de-dados-standalone e utilizando-swing-com-banco-de-dados

G

Poxa pessoal, obrigado. Eu já vinha utilizando o PreparedStatement, pois aprendi com os tutorias e lendo foruns, mas como eu vi que tinha o Statement, resolvi perguntar.

abraços.

G

Surgiu uma outra dúvida…

preparedStatement ps = conexao.prepareStatement(“SELECT * FROM…”);
ps.executeQuery();

Posso em algum momento usar o mesmo “ps” e fazer um executeUpdate(“UPDATE table SET…”); ?? ?

ou é indicado criar um uma outra preparedStatement ?

M

Se vc ser um Clear fica de bouas
e pode usar o mesmo.
procure não inserir o SQL diretamente pelos métodos
e quando for usar parâmetros “seta” eles pelo ps.

Criado 7 de março de 2011
Ultima resposta 17 de mar. de 2011
Respostas 6
Participantes 4