Questão nº 33

Questão de Tecnologia da Informação · FCC PGE-AM 2022 (nº 33)

FCC2022Técnico em Gestão Procuratorial - Especialidade Engenharia de SoftwareTecnologia da Informação
Gabarito: Bver comentário ↓

Considere `st` um objeto do tipo `PreparedStatement` e `conn` um objeto do tipo `Connection`, ambos em condições ideais para a execução do método `salvar`, de uma classe Java.

```java
public boolean salvar(Cliente cliente){
try {
st = conn.prepareStatement("
I
");
st.setString(1, cliente.getCpf());
st.setString(2, cliente.getNome());
st.setString(3, cliente.getEndereco());
st.setString(4, cliente.getBairro());
st.setString(5, cliente.getCidade());
st.setString(6, cliente.getTelefone());
st.setDouble(7, cliente.getRenda());
st.executeUpdate();
return true;
} catch (SQLException ex) {
return false;
}
}
```

Nas condições apresentadas, para que o método `salvar` grave as informações do cliente no banco de dados aberto, a lacuna `I` deve ser corretamente preenchida com a instrução

Resposta comentada

Gabarito Alternativa B

Para inserir dados em um banco com PreparedStatement em JDBC, usamos marcadores de posição (ponto de interrogação ?) na instrução SQL para indicar onde os valores serão inseridos. Esses marcadores são preenchidos na ordem em que aparecem na instrução SQL, usando os métodos setX() do PreparedStatement.

  • (A) Incorreta: Esta instrução tenta inserir os nomes das colunas (cpf, nome, etc.) como se fossem os próprios valores, o que é um erro de sintaxe e lógica.
  • (B) Correta: Esta instrução usa INSERT INTO cliente VALUES(...) para inserir dados em todas as colunas da tabela cliente, na ordem em que as colunas foram definidas na tabela. Os sete ? são os marcadores de posição que correspondem aos sete métodos st.setX() chamados no código Java, garantindo que os valores do objeto cliente sejam inseridos corretamente na ordem (CPF, Nome, Endereço, Bairro, Cidade, Telefone, Renda).
  • (C) Incorreta: Embora a sintaxe INSERT INTO cliente (colunas) VALUES(?) seja válida, a ordem das colunas listadas (nome,cpf,...) não corresponde à ordem em que os valores estão sendo definidos pelos métodos st.setString(1, cliente.getCpf()), st.setString(2, cliente.getNome()), etc. O primeiro ? seria preenchido com o CPF, mas a instrução SQL esperaria o nome para a primeira coluna listada. Essa é a armadilha mais comum, pois a ordem dos parâmetros é crucial.
  • (D) Incorreta: Os colchetes [] não são o padrão SQL para marcadores de posição ou para delimitar valores literais em uma cláusula VALUES.
  • (E) Incorreta: A palavra-chave correta para inserir dados é INSERT INTO, não INSERT TO.

Fonte: FCC PGE-AM 2022 Técnico em Gestão Procuratorial - Especialidade Engenharia de Software (Caderno Tipo 001). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho