50 perguntas essenciais da entrevista JDBC e respostas de especialistas (2026)
A preparação para uma entrevista JDBC exige um conhecimento profundo da conectividade do banco de dados, ajuste de desempenho e práticas recomendadas de segurança. As 50 perguntas a seguir abrangem conceitos básicos e cenários do mundo real que os recrutadores priorizam.
👉 Download gratuito do PDF:Perguntas e respostas da entrevista JDBC
1) O que é JDBC e por que ele é importante em aplicações Java?
JDBC (Java Database Connectivity) é a API principal que permite que programas Java interajam com bancos de dados relacionais. Ele padroniza a execução de SQL, o tratamento de resultados e o controle de transações, permitindo que os desenvolvedores escrevam código independente de banco de dados que pode alternar entre MySQL, Oracle, PostgreSQL e outros com alterações mínimas.
2) Quais são os quatro tipos de driver JDBC e suas principais diferenças?
- Tipo1 (ponte JDBC‑ODBC) :Faz a ponte entre JDBC e ODBC; fácil de usar, mas requer ODBC e é lento.
- Tipo2 (API nativa) :Chama bibliotecas nativas de banco de dados; mais rápido que o Type1, mas depende da plataforma.
- Tipo3 (protocolo de rede) :Usa middleware para traduzir chamadas; independente de banco de dados, mas adiciona sobrecarga de rede.
- Type4 (driver fino) :Java puro, comunica-se diretamente com o BD; mais alto desempenho e portabilidade. A maioria dos aplicativos modernos usa Type4.
3) Descreva o ciclo de vida de um programa JDBC.
- Carregue o driver:
03 - Estabeleça um
19via23ou um35. - Crie um
48,55 ou68. - Execute o SQL (consulta, atualização ou procedimento).
- Processar o
75se aplicável. - Feche todos os recursos (prefira
86).
4) Quando você deve usar Statement, PreparedStatement ou CallableStatement?
- Declaração :SQL estático; rápido para consultas pontuais.
- Instrução Preparada :Consultas parametrizadas; protege contra injeção de SQL e melhora o desempenho por meio da pré-compilação.
- CallableStatement :Procedimentos ou funções armazenados; encapsula lógica complexa de banco de dados.
5) Como você gerencia transações em JDBC?
- Desativar confirmação automática:
91 - Execute múltiplas instruções.
- Em caso de sucesso,
109; em caso de falha,118.
Use este padrão para operações atômicas, como transferências de fundos.
6) Quais são os prós e os contras do pool de conexões JDBC?
- Prós :reutiliza conexões, reduz a latência e dimensiona sob carga.
- Contras :Requer configuração cuidadosa; conexões obsoletas podem ocorrer se não forem atualizadas.
Frameworks como HikariCP e Apache DBCP são padrões da indústria.
7) Distinguir execute(), executeQuery() e executeUpdate().
127:Qualquer SQL; retorna131 indicando se um140é produzido.154:instruções SELECT; retorna um169.173:INSERIR, ATUALIZAR, EXCLUIR; retorna a contagem de linhas afetadas.
8) Quais estratégias melhoram o desempenho do JDBC?
- Use
184para pré-compilação. - Atualizações em lote via
194. - Pooling de conexões.
- Selecione apenas as colunas necessárias.
- Feche os recursos imediatamente.
9) Explique as atualizações em lote no JDBC.
00
Reduz viagens de ida e volta e aumenta a produtividade.
10) Qual é o papel do ResultSet?
ResultSet contém os resultados da consulta. Ele pode ser somente direto, rolável ou atualizável, dependendo dos sinalizadores de criação.
11) Compare JDBC e ODBC.
- JDBC:Java puro, independente de plataforma, alto desempenho.
- ODBC:baseado em C, dependente da plataforma, requer drivers nativos.
12) Identifique os componentes da arquitetura JDBC.
- API JDBC (Conexão, Instrução, ResultSet).
- Gerenciador de Drivers (registra drivers).
- Implementações de driver (Tipo1‑4).
- Back-end do banco de dados.
13) Explique ResultSetMetaData vs DatabaseMetaData.
- ResultSetMetaData :nomes de colunas, tipos de uma consulta específica.
- DatabaseMetaData :nome do driver, produto de banco de dados, recursos SQL suportados.
14) Como usar Savepoints?
1915) Defina RowSet e suas variantes.
- JdbcRowSet – conectado.
- CachedRowSet – desconectado, serializável.
- WebRowSet – baseado em XML.
- FilteredRowSet – visualize com filtros.
- JoinRowSet – mescla vários RowSets.
16) Como o JDBC lida com exceções SQL?
SQLException fornece
206 , 217 e 229 . Sempre registre e reverta em caso de falha.
17) O que é processamento em lote?
Agrupe diversas instruções DML em uma única viagem de ida e volta; use 233 e 244 .
18) Liste os tipos de instrução novamente.
- Instrução – SQL estático.
- PreparedStatement – parametrizado.
- CallableStatement – procedimentos armazenados.
19) Gerenciamento de conexão eficiente.
Prefira 256 com pool de conexões. Utilize 267 para limpeza automática.
20) Instrução JDBC vs Sessão de Hibernate.
- JDBC:mapeamento manual de baixo nível.
- Hibernação:ORM, cache, geração automática de SQL.
21) Recuperar chaves geradas automaticamente.
27 22) Manipulação de BLOB e CLOB.
- BLOB – fluxos binários.
- CLOB – fluxos de caracteres.
23) Tornando o ResultSet rolável/atualizável.
31 24) DataSource x DriverManager.
- DriverManager – simples, sem pooling.
- DataSource – pesquisa JNDI, pooling, suporte XA.
25) Processamento em lote com PreparedStatement.
49 26) Usando DatabaseMetaData.
57 27) Recapitulação das variantes de execução.
- executar() – booleano.
- executeQuery() – Conjunto de resultados.
- executeUpdate() – int.
28) Fechando recursos JDBC.
60 29) Otimizações de desempenho comuns.
- Pooling de conexões.
- PreparedStatement sobre declaração.
- Atualizações em lote.
- Ajuste de tamanho de busca.
- Recuperação seletiva de colunas.
30) Chamando procedimentos armazenados.
72 31) Internos do pool de conexões JDBC.
Na inicialização, um pool cria um conjunto fixo de conexões. Solicita empréstimo de conexão; retorna após o uso, mantendo os recursos na memória.
32) Configurar o HikariCP.
89 33) DriverManager x DataSource.
- DriverManager – direto, sem pooling.
- DataSource – agrupado, XA, JNDI.
34) Causas comuns de “Nenhum driver adequado encontrado”.
- JAR do driver ausente no caminho de classe.
- URL JDBC incorreto.
- Falta
276 (pré-Java9).
- Incompatibilidade de versão do driver com o banco de dados.
35) Impedir injeção de SQL.
- Sempre use
282 com parâmetros.
- Validar e limpar a entrada do usuário.
- Limite os privilégios do banco de dados.
36) JDBC versus ORM (hibernação).
- JDBC:controle fino, mapeamento manual, leve.
- Hibernação:ORM automático, cache, curva de aprendizado mais alta.
37) Registrando consultas SQL.
- Ativar o registro do driver (por exemplo,
295 do MySQL ).
- Use P6Spy ou datasource‑proxy para interceptar e registrar.
38) Multithreading seguro com JDBC.
- Não compartilhe
309 objetos entre threads.
- Pegue emprestada uma conexão de um pool por thread.
- Feche os recursos com try-with-resources.
39) JDBC no Spring/Spring Boot.
313 da primavera lida com texto padrão, tradução de exceções e pool de conexões automaticamente.
40) Estados de conexão JDBC.
- Inicializado → Aberto → Em transação → Confirmado/Revertido → Fechado.
41) Recapitulação dos tipos de driver.
- Tipo1 – baixo desempenho, requer ODBC.
- Tipo2 – nativo, desempenho médio.
- Tipo3 – middleware, desempenho moderado.
- Type4 – Java puro, mais alto desempenho.
42) Níveis de isolamento de transação.
- READ_UNCOMMITTED – leituras sujas.
- READ_COMMITTED – padrão, evita leituras sujas.
- REPEATABLE_READ – evita leituras não repetíveis.
- SERIALIZÁVEL – isolamento estrito, evita leituras fantasmas.
43) Transações distribuídas (XA).
- Usar
326 e um gerente JTA (Atomikos, Bitronix, Spring).
- A confirmação em duas fases coordena as confirmações em vários bancos de dados.
44) Criação de perfil de desempenho JDBC.
- P6Spy, proxy de fonte de dados para registro de consultas.
- Java Flight Recorder/JVisualVM para uso de conexão.
- Planos EXPLAIN do banco de dados para ajuste de consulta.
- Prometheus + Grafana para métricas.
45) Evitando vazamentos de memória JDBC.
- Sempre feche
335 , 343 , 359 via try-with-resources.
- Configurar tempos limite do pool (maxIdleTime, maxLifetime).
- Evite manter ResultSets além do escopo.
46) JDBC para microsserviços/nuvem.
- HikariCP para pooling leve.
- Sessões JDBC sem estado.
- Ler réplicas, armazenamento em cache (Redis).
- Disjuntores Resilience4j para failover de banco de dados.
47) Tratamento elegante de falhas de conexão.
98 48) Diferenças de commit, rollback e pontos de salvamento.
- Comprometer-se – finaliza todas as alterações.
- Reversão – reverte para o último commit.
- Ponto de salvamento – alvo de reversão parcial.
49) Utilidade dos metadados JDBC.
- Introspecção de esquema dinâmico.
- Verificações de capacidade do banco de dados.
- Ferramentas para geração de ORM.
50) Melhores práticas para JDBC corporativo.
- Usar
361 com agrupamento.
- Prefira
371 .
- Trate as transações com isolamento adequado.
- Operações em lote e paginação.
- Registre e monitore consultas.
- Trate exceções e novas tentativas com facilidade.
🔍 Principais perguntas da entrevista JDBC com cenários do mundo real e respostas estratégicas
Abaixo estão 10 perguntas de entrevista JDBC cuidadosamente elaboradas, com o que os entrevistadores esperam e exemplos de respostas fortes.
1) O que é JDBC e por que ele é importante?
Resposta esperada: JDBC é a API Java para acesso ao banco de dados; ele abstrai a execução SQL, o tratamento de resultados e as transações, permitindo código independente de banco de dados.
2) Explique os tipos de driver JDBC.
Resposta esperada: Quatro tipos:ponte JDBC‑ODBC, API nativa, protocolo de rede, driver fino. Type4 é o mais comum hoje.
3) Como você gerencia conexões de forma eficiente?
Resposta esperada: Use pools de conexão como HikariCP; evite abrir/fechar conexões por solicitação.
4) Distinguir declaração, PreparedStatement e CallableStatement.
Resposta esperada: Instrução – SQL estático; PreparedStatement – parametrizado, evita injeção; CallableStatement – procedimentos armazenados.
5) Descreva uma otimização de desempenho JDBC que você executou.
Resposta esperada: Concatenação de string substituída por PreparedStatement, pooling introduzido e inserções em lote usadas; reduziu o tempo de resposta em 40%.
6) Como você evita a injeção de SQL?
Resposta esperada: Use PreparedStatement; validar entrada; limitar privilégios de banco de dados.
7) Solucionar problemas de falha de conexão JDBC.
Resposta esperada: Verifique URL, credenciais, rede, jar do driver; revisar registros; corrija a porta mal configurada.
8) Gerenciar transações em JDBC.
Resposta esperada: Desative a confirmação automática, execute operações, confirme ou reverta com base no resultado; garante conformidade com ACID.
9) Resolva um problema desafiador de banco de dados com JDBC.
Resposta esperada: Implementação do processamento em lote para inserções em massa, reduzindo o tempo de minutos para segundos.
10) Priorize melhorias de JDBC em prazos apertados.
Resposta esperada: Avalie o impacto, comunique-se com clareza, resolva primeiro os itens de alto impacto e colabore para cumprir o SLA.
As 50 principais perguntas e respostas da entrevista Kotlin (2026)
As 40 principais perguntas e respostas da entrevista J2EE (2026)
Java