Junior — Middle
Qual é a diferença entre usar PreparedStatement e CallableStatement ao trabalhar com bancos de dados?
sobes.tech IA
Resposta da IA
A principal diferença entre PreparedStatement e CallableStatement em Java ao trabalhar com bases de dados:
-
PreparedStatement é usado para executar consultas SQL pré-compiladas (geralmente SELECT, INSERT, UPDATE, DELETE). Permite inserir parâmetros de forma segura, prevenindo injeções SQL.
-
CallableStatement destina-se a chamar procedimentos armazenados ou funções definidas na base de dados. Suporta tanto parâmetros de entrada quanto de saída.
Exemplo de uso do PreparedStatement:
String sql = "SELECT * FROM users WHERE id = ?";
PreparedStatement ps = connection.prepareStatement(sql);
ps.setInt(1, 10);
ResultSet rs = ps.executeQuery();
Exemplo de uso do CallableStatement:
CallableStatement cs = connection.prepareCall("{call getUserById(?)}");
cs.setInt(1, 10);
ResultSet rs = cs.executeQuery();
Assim, o PreparedStatement é para consultas parametrizadas comuns, e o CallableStatement para chamar procedimentos da base de dados.