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.
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.
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?
Aliás, o próprio Javadoc possui uma breve explicação sobre PreparedStatement e diz que Statement deve ser utilizada com consultas fixas.
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
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.
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 ?
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.