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.