Sobes.tech
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.