Pular para o conteúdo principal

Questão de Programação — Java — Quadrix 2024

ProgramaçãoJava
Código
qg354237
Banca
Quadrix
Órgão
IBICT
Ano
2024
Nível
Superior
Cargo
Tecnologista - Tecnologia da Informação
Acerca da definição de classe, da utilização de encapsulamento, da sobrescrita de métodos e do acesso ao banco de dados, julgue o item.JDBC utiliza drivers Java específicos para cada banco de dados.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

JDBC: drivers específicos por banco de dados

Gabarito: C — CERTO. O JDBC (Java Database Connectivity) é a API padrão do Java para acesso a bancos de dados, e sua arquitetura exige que cada banco de dados tenha um driver JDBC específico, que implementa as interfaces da API para traduzir as chamadas Java em comandos compreensíveis pelo SGBD. A afirmação está correta.

O JDBC é uma API (Application Programming Interface) que define um conjunto de interfaces e classes para que programas Java possam se conectar a bancos de dados relacionais. A ideia central é fornecer uma camada de abstração: o programador escreve código usando as interfaces do JDBC (como Connection, Statement, ResultSet), e o driver específico do banco é quem implementa essas interfaces, convertendo as chamadas Java em protocolos e comandos nativos do SGBD.

Essa arquitetura é o que permite a portabilidade do código Java entre diferentes bancos de dados. Por exemplo, se você desenvolve uma aplicação usando MySQL e depois precisa migrar para PostgreSQL, em teoria basta trocar o driver JDBC e ajustar a string de conexão — o código que usa as interfaces do JDBC permanece o mesmo. Isso só é possível porque cada driver é escrito especificamente para um banco, conhecendo suas particularidades de protocolo, tipos de dados e sintaxe SQL.

Na prática, o fluxo funciona assim: a aplicação carrega o driver (via Class.forName ou, mais modernamente, via DriverManager e o ServiceLoader), estabelece uma conexão com o banco usando uma URL JDBC (como jdbc:mysql://localhost:3306/meubanco), e a partir daí executa comandos SQL. O driver é o intermediário que traduz tudo isso para o protocolo nativo do banco. Sem o driver específico, o Java não consegue se comunicar com o banco — é por isso que cada banco (MySQL, Oracle, PostgreSQL, SQL Server, etc.) possui seu próprio driver JDBC, geralmente fornecido pelo próprio fabricante ou pela comunidade.

A pegadinha que a banca poderia explorar aqui é a confusão entre JDBC e outras tecnologias de persistência, como JPA (Java Persistence API) ou Hibernate. Enquanto o JDBC é uma API de baixo nível que exige drivers específicos por banco, o JPA/Hibernate são camadas de abstração mais altas que usam o JDBC por baixo, mas oferecem portabilidade ainda maior — o Hibernate, por exemplo, gera o SQL adequado para cada banco automaticamente, mas ainda assim depende do driver JDBC subjacente. A afirmação da questão, porém, é sobre o JDBC em si, e nesse contexto está correta.

Guarde o critério decisivo: JDBC = API + driver específico por banco. É exatamente essa característica que torna a afirmação verdadeira.

  1. 1Carregar driver específico
  2. 2Estabelecer conexão (URL JDBC)
  3. 3Executar comandos SQL
  4. 4Processar resultados
LEVEL · soulevel.com.br

Alternativa C — ✅ CERTOGABARITO

A afirmação está correta. O JDBC é uma API que define interfaces padrão, mas a implementação concreta dessas interfaces é feita por drivers específicos para cada banco de dados. Cada SGBD (MySQL, Oracle, PostgreSQL, SQL Server, etc.) possui seu próprio driver JDBC, que traduz as chamadas Java para o protocolo nativo do banco. Sem o driver específico, a aplicação Java não consegue se conectar ao banco. Essa é a arquitetura fundamental do JDBC e é o que permite a portabilidade do código Java entre diferentes bancos, desde que se troque o driver e a string de conexão.

Gabarito: C — CERTO.

Link permanente: /questoes/qg354237