Questão nº 49
Questão de Tecnologia da Informação · CESGRANRIO BASA 01/2024 (nº 49)
Um desenvolvedor está utilizando JDBC (Java Database Connectivity) para interagir com um banco de dados e obteve uma variável rs com a linha de código:
`rs = java.sql.DriverManager.executeQuery("SELECT * FROM sua_tabela");`
Considerando-se esse contexto, qual das seguintes linhas de código mostra corretamente como avançar a posição do cursor quando é necessário obter o próximo registro?
- A`rs.moveNext();`
- B`rs.fetchNext();`
- C`rs.next();` (alternativa correta)
- D`rs.getNext();`
- E`rs.advance();`
Resposta comentada
Gabarito Alternativa C
O ResultSet no JDBC é como um "cursor" que aponta para uma linha do resultado da consulta. Para ler cada registro, você precisa mover esse cursor para a próxima linha usando o método next(), que retorna true se existir uma linha e false quando não houver mais registros. O DriverManager não tem método executeQuery (isso é do Statement), mas o foco da questão é o método de navegação.
- (A) Incorreta:
moveNext()não existe na API JDBC; é um nome genérico de outras linguagens (como C#), mas não do Java. - (B) Incorreta:
fetchNext()não é um método doResultSet; a API usanext()para navegação, efetché usado internamente para buscar lotes de dados. - (C) Correta:
rs.next()é o método oficial da interfacejava.sql.ResultSetque move o cursor para a próxima linha, retornandoboolean(true se houver registro, false se chegou ao fim). - (D) Incorreta:
getNext()não existe; métodosget*no JDBC são usados para obter valores de colunas (ex:getString,getInt), não para mover o cursor. - (E) Incorreta:
advance()não é um método doResultSet; a nomenclatura correta da API Java énext(), e "advance" seria uma tradução literal que não se aplica.
Armadilha da banca: A pegadinha está em alternativas como moveNext() e fetchNext(), que parecem intuitivas (e existem em outras tecnologias), mas o candidato precisa lembrar que a API Java tem um padrão próprio: next() é o único método de navegação do ResultSet. Quem decora nomes de outras linguagens ou traduz literalmente cai na letra A ou B.
Fonte: CESGRANRIO BASA 01/2024 Técnico Científico - Área de Formação: Tecnologia da Informação (Caderno Prova B). Reproduzida para fins de estudo.