Questão nº 38

Questão de Programação · FCC TJ-CE 2022 (nº 38)

FCC2022Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da InformaçãoProgramação
Gabarito: Bver comentário ↓

Considere o bloco de código, abaixo, presente um uma aplicação Java, em condições ideais.

```java
String driver, url, usuario, senha, sql;
Connection conecta;
PreparedStatement st;
driver = "com.mysql.cj.jdbc.Driver";
url = "jdbc:mysql://localhost:3306/bd";
usuario = "root";
senha = "aB12c56DY";
sql = "SELECT * FROM users WHERE usuario=? AND senha=?";
Class.forName(driver);
conecta = DriverManager.getConnection(url, usuario, senha);
st = conecta.prepareStatement(sql);
st.setString(1, txtUsuario.getText());
st.setString(2, pswSenha.getText());
```

Para executar o comando SQL SELECT na tabela `users` do banco de dados `bd` e armazenar o retorno em `rs` deve-se utilizar, na próxima linha do bloco de código, o comando

Resposta comentada

Gabarito Alternativa B

Para buscar dados de um banco de dados usando o comando SELECT em Java JDBC, você usa um objeto PreparedStatement e executa um método específico que retorna um ResultSet, que é como uma tabela de resultados.

  • (A) Incorreta: RecordSet não é o nome da classe correta em JDBC; o correto é ResultSet. Além disso, executeSelect() não é um método válido para PreparedStatement.
  • (B) Correta: ResultSet é a classe correta para armazenar os resultados de uma consulta, e executeQuery() é o método específico e direto para executar comandos SELECT em um PreparedStatement, retornando o ResultSet com os dados.
  • (C) Incorreta: A armadilha da banca aqui é que execute() é um método genérico que pode executar qualquer tipo de comando SQL (SELECT, INSERT, UPDATE, DELETE). No entanto, ele retorna um boolean e exige chamadas adicionais como getResultSet() para obter o ResultSet de um SELECT. Para comandos SELECT, executeQuery() é o método mais direto e apropriado, pois já retorna o ResultSet diretamente.
  • (D) Incorreta: Embora ResultSet seja o nome da classe correta, executeSelect() não é um método válido para PreparedStatement.
  • (E) Incorreta: RecordSet não é o nome da classe correta em JDBC; o correto é ResultSet.

Fonte: FCC TJ-CE 2022 Analista Judiciário - Especialidade Ciência da Computação - Área Sistemas da Informação (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