Sobes.tech
Junior

Qual é a diferença entre Statement e PreparedStatement em Java?

sobes.tech IA

Resposta da IA

Statement e PreparedStatement são interfaces JDBC para executar consultas SQL, mas diferem na sua forma de funcionamento e aplicação.

  • Statement é usado para executar consultas SQL simples sem parâmetros. As consultas são passadas como strings, que são compiladas e executadas a cada vez.
  • PreparedStatement permite criar consultas parametrizadas com placeholders (por exemplo, ?), que são compilados uma vez e podem ser executados várias vezes com diferentes parâmetros.

Vantagens do PreparedStatement:

  • Segurança: previne injeções SQL, pois os parâmetros são passados separadamente e não afetam a estrutura da consulta.
  • Performance: a consulta é compilada uma única vez, o que acelera a execução repetida.

Exemplo de uso do PreparedStatement:

String sql = "SELECT * FROM users WHERE email = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, "user@example.com");
ResultSet rs = ps.executeQuery();

Enquanto que o Statement:

Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE email = 'user@example.com'");

Recomenda-se usar o PreparedStatement para consultas dinâmicas com parâmetros e para melhorar a segurança e o desempenho.