As 50 principais perguntas e respostas da entrevista JDBC (2024)

Aqui estão as perguntas e respostas da entrevista sobre Java Database Connectivity (JDBC) para calouros e também para candidatos experientes para conseguir o emprego dos sonhos.

Download gratuito de PDF: Perguntas da entrevista JDBC


1) O que é o JDBC?

JDBC significa conectividade de banco de dados Java. JDBC é uma API Java que se comunica com o banco de dados e executa SQLquery.


2) O que é um driver JDBC e quantos drivers JDBC estão disponíveis?

O driver JDBC contém classes e interfaces que auxiliam aplicativos e bancos de dados Java.

Existem 4 tipos de drivers JDBC.

  1. Driver tipo 1 ou driver de ponte JDBC-ODBC.
  2. Driver Tipo 2 ou Nativo-API, parcialmente driver Java.
  3. Driver tipo 3 ou protocolo de rede, driver Java puro.
  4. Driver tipo 4 ou protocolo nativo, driver Java puro.

3) Como posso me conectar MySQL ou Oracle com Java?

//for MySQL {
try {

Class.forName ("com.mysql.jdbc.Driver");

con=DriverManager.getConnection ("jdbc: mysql://localhost:3306/dbanme", "username", "password");

Statement st=con.createstatement ();

Resultset rs=st.executeQuery ("select * from user");

rs.next (); catch (ClassNotFoundException e) {

System.err.println ("ClassNotFoundException in get Connection," + e.getMessage()); }

catch (SQLException e) {

System.err.println ("SQLException in getConnection," + e.getMessage ()) ;}

//for oracle

{

try

{

Class.forName ("oracle.jdbc.driver.OracleDriver");

con= DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:dbname", "username", "password");

Statement st=con.createstatement();

Resultset rs=st.executeQuery("select * from user");

Rs.next();

} catch (ClassNotFoundException e) {

System.err.println("ClassNotFoundException in get Connection," +e.getMessage()); }

catch (SQLException e) {

System.err.println("SQLException in getConnection, " + e.getMessage()); } return con; }

Explicação do código

Class.forName cria uma instância do driver JDBC e registra-se no DriverManager.

O método getConnection() sempre estabelece uma conexão com um banco de dados.

Precisamos criar um objeto Statement a partir do objeto de conexão acima. A instrução retornará o objeto conjunto de resultados. ResultSet.next() significa Se o conjunto de resultados ainda estiver retornando linha.


4) Qual driver JDBC é o driver mais rápido?

O driver tipo 4 ou protocolo nativo, driver Java puro, é o driver mais rápido.


5) Quais são os componentes da API JDBC?

Existem quatro tipos de componentes

  1. API JDBC
  2. Gerenciador de driver JDBC
  3. Conjunto de testes JDBC
  4. Ponte JDBC-ODBC
Perguntas da entrevista do JDBC
Perguntas da entrevista do JDBC

6) Quais são as declarações JDBC?

Existem 3 tipos de instruções JDBC, conforme abaixo:

  1. Declaração: Ele será executado SQL consulta (consulta SQL estática) no banco de dados.
  2. Declaração preparada: Usado quando queremos executar instruções SQL repetidamente. Os dados de entrada são dinâmicos e obtidos em tempo de execução.
  3. Declaração exigível: Usado quando queremos executar procedimentos armazenados.

7) Como podemos executar procedimentos armazenados?

Os procedimentos armazenados podem ser executados usando a instrução JDBCcallable. Aqui está o código.

Connection conn = null;

CallableStatement callStmt = conn.prepareCall("{call myStoreproc(?, ?)}");

callStmt.setString(1, "abcdefg");


8) Quais são as vantagens de usar PreparedStatement em Java?

A instrução preparada é usada para executar as mesmas instruções SQL repetidamente. A declaração preparada é compilada apenas uma vez, embora tenha sido usada “n” vezes


9) O que é ResultadoSet?

A interface java.sql.ResultSet significa o conjunto de resultados de uma consulta SQL. Significa que um cursor está apontando para uma linha de uma tabela; aponta para antes da primeira linha.


10) Quais são os tipos de ResultSet?

Existem três tipos de ResultSet disponíveis. Se não declararmos nenhum ResultSet isso significa que estamos chamando TYPE_FORWARD_ONLY

  1. TYPE_FORWARD_ONLY: o cursor só pode se mover para frente.
  2. TYPE_SCROLL_INSENSITIVE: o cursor pode avançar e retroceder, mas não é sensível.
  3. TYPE_SCROLL_SENSITIVE: o cursor pode avançar e retroceder, mas é sensível

11) Explique a diferença entre RowSet e ResultSet em JDBC?

Em uma conexão de identificador ResultSet com um banco de dados, não podemos fazer Result como um objeto serializado.

Devido ao problema acima, não podemos passar o Resultset pela rede.

RowSet estende a interface ResultSet, portanto contém todos os métodos de ResultSet. RowSet é serializado.

Assim, podemos passar o Rowset de uma classe para outra porque ele não tem conexão com o banco de dados.


12) Por que você usaria setAutoCommit(false) em JDBC?

Se você deseja desligar o Auto Commit, defina connection.setAutoCommit(false)


13) O que são avisos de banco de dados em JDBC e como podemos lidar com avisos de banco de dados em JDBC?

Aviso SQL ou aviso de banco de dados é a subclasse da classe SQLException. Podemos lidar com isso usando o método getWarnings() em Connection, Statement e ResultSet


14) Posso obter um ResultSet nulo?

Não, não podemos obter um conjunto de resultados nulo. ResultSet.next() pode retornar nulo se o próximo registro não contiver uma linha.


15) O que você quer dizer com metadados e por que os utilizamos?

Metadados significam dados ou informações sobre outros dados. Usamos metadados para obter a versão do produto do banco de dados, o nome do driver, o número total de tabelas e visualizações.


16) Qual a diferença entre executar, executeQuery, executeUpdate em JDBC?

execute(): pode ser usado para qualquer tipo de consulta SQL.

executeQuery(): pode ser usado para consulta selecionada.

executeUpdate(): pode ser usado para alterar/atualizar tabela.


17) O que é pool de conexões de banco de dados? Vantagens de usar um pool de conexões?

O pool de conexões significa que as conexões serão armazenadas no cache e poderemos reutilizá-las no futuro.

Vantagem:

  1.  É mais rápido
  2.  O pool de conexões torna-se mais fácil de diagnosticar e analisar a conexão do banco de dados.

18) Qual a função da classe DriverManager?

É uma interface entre usuário e drivers. DriverManager rastreia toda a atividade entre um banco de dados e o driver apropriado.


19) Qual é o significado das atualizações em lote?

Atualizações em lote significam executar um conjunto/grupo de consultas SQL de uma só vez.

As atualizações em lote podem ser usadas apenas para inserir, atualizar e excluir, mas não para consulta selecionada.


20) Quantos pacotes estão disponíveis na API JDBC?

Dois tipos de pacotes estão disponíveis na API JDBC

  1. java.sql
  2. javax.sql

21) Qual é o tipo de retorno de execute, executeQuery e executeUpdate?

O tipo de retorno de execução é booleano

O tipo de retorno de executeQuery é o objeto ResultSet

O tipo de retorno de executeUpdate é int


22) O índice do conjunto de resultados começa com 0 ou 1?

O índice do conjunto de resultados começa com 1.


23) Qual é a função do Class.forName ao carregar drivers?

Class.forName cria uma instância do driver JDBC e registra-se no DriverManager.


24) A ponte JDBC-ODBC é multithread ou não?

Não, o JDBC-ODBC Bridge usa métodos sincronizados para serializar todas as chamadas feitas ao ODBC.


25) Qual interface trata do gerenciamento de transações em JDBC?

A interface de conexão lida com o gerenciamento de transações em JDBC. Ele fornece método para commit (), rollback () etc.


26) Por que ocorre o erro “Nenhum driver adequado”?

Nenhum driver adequado” ocorre quando chamamos o método DriverManager.getConnection,

isso pode ocorrer pelos seguintes motivos:

  • não é possível carregar drivers JDBC exatos antes de chamar o método getConnection.
  • Pode ser um URL JDBC inválido ou incorreto.

27) Declarações preparadas são mais rápidas. Por que?

A execução da instrução preparada é mais rápida que a execução direta porque a instrução é compilada apenas uma vez. As instruções preparadas e o driver JDBC são conectados entre si durante a execução e não há sobrecarga de conexão.


28) É possível conectar-se a vários bancos de dados? Usando uma única instrução, podemos atualizar ou extrair dados de dois, três ou muitos bancos de dados?

Sim, é possível conectar-se a vários bancos de dados ao mesmo tempo, mas depende do driver específico.

Para atualizar e extrair dados de diferentes bancos de dados, podemos usar a instrução única. Mas precisamos de middleware para lidar com vários bancos de dados ou com um único banco de dados.


29) Diga-me a diferença entre setMaxRows(int) e SetFetchSize(int)?

setMaxRows(int) DefinirFetchSize(int)?
Define quantas linhas um conjunto de resultados pode conter por vez Define o número de linhas que serão lidas do banco de dados.

30) Conte-me sobre personagens especiais?

Um caractere especial é precedido por um caractere de escape. Exemplo -

SELECT NAME FROM TABLE WHERE NAME LIKE '\_%' {escape '\'}

31) Qual é o significado de “leitura suja” no banco de dados?

Leitura suja significa “ler o valor que pode estar correto ou não”.


32) O que você quer dizer com commits em duas fases?

A confirmação de duas fases é usada no processo de transação distribuída. Se alguma transação estiver em execução e afetará vários bancos de dados. Confirmações de duas fases serão usadas para sincronizar todos os bancos de dados entre si.


33) Quantos sistemas de bloqueio existem no JDBC?

Dois tipos de bloqueio estão disponíveis no JDBC, pelos quais podemos lidar com mais de um usuário.

Se dois usuários estiverem visualizando o mesmo registro, nenhum bloqueio será feito. Se um usuário estiver atualizando um registro e o segundo usuário também estiver atualizando o mesmo registro. Nesse momento, vamos usar o bloqueio.

  1. Bloqueio Otimista: irá bloquear o registro somente quando formos “atualizar”.
  2. Bloqueio Pessimista: bloqueará o registro do “select” para visualizar, atualizar e confirmar o tempo.

34) Quais são as exceções no JDBC?

Existem quatro tipos de exceções no JDBC.

  1. Exceção de atualização em lote
  2. Truncamento de dados
  3. Exceção SQL
  4. Aviso SQL

35) Dê passos para conectar ao banco de dados usando JDBC?

Existem duas maneiras de conectar banco de dados usando JDBC

  1. Usando DriverManager:

Ele carregará a classe do driver com a ajuda de class.forName(driver class) e Class.forName().

Após o carregamento, ele passará o controle para o DriverManager.

DriverManager.getConnection() criará a conexão para acessar o banco de dados.

  1. Usando Fonte de Dados:

Para DataSource, não há necessidade de usar DriverManager com a ajuda de JNDI. Ele procurará o DataSource no servidor do serviço de nomeação. O método DataSource.getConnection() retornará o objeto Connection para o banco de dados.


36) Explique a arquitetura JDBC?

A API JDBC oferece suporte a modelos de 2 e 3 camadas para o banco de dados.

No modelo de 2 camadas, o aplicativo Java interage com a fonte de dados

No modelo de 3 camadas, os comandos são redirecionados para uma “camada intermediária” de serviços. Depois disso, os comandos são enviados para a fonte de dados.


37) Quais são os novos recursos disponíveis no JDBC 4.0?

As novas funcionalidades são

  • Carregamento automático por classe de driver JDBC
  • Gerenciamento de conexão aprimorado
  • RowId SQL ativado
  • Conjunto de dados implementado por SQL usando anotações
  • Aprimoramentos no tratamento de exceções SQL
  • Suporte SQL XML arquivos

38) Quais são os pacotes usados ​​no JDBC?

8 pacotes são usados ​​em JDBC –

  1. sql.Driver
  2. Conexão
  3. Declaração
  4. Declaração preparada
  5. Declaração Callable
  6. Conjunto de resultados
  7. ResultSetMetaData
  8. Banco de DadosMetaDados

39) Quantos RowSet estão disponíveis no JDBC?

Existem dois tipos de conjuntos de linhas disponíveis:

  1. conectado – Um objeto RowSet conectado se conecta ao banco de dados instantaneamente. Se o aplicativo for encerrado, o objeto RowSet conectado também será encerrado.
  2. Desconectado – Um objeto RowSet desconectado se conecta ao banco de dados após a execução da consulta necessária.

40) Qual é o significado de conexão?

A interface de conexão consiste em métodos de interação com o banco de dados.


41) Explique o ponto de salvamento JDBC?

Um ponto de salvamento representa um ponto para o qual a transação atual pode reverter. Em vez de reverter todas as alterações, ele pode optar por reverter apenas algumas delas.


42) Liste as vantagens de usar o DataSource?

A fonte de dados está dividindo o trabalho entre administrador e programador/desenvolvedor.

O administrador cria um objeto DataSource e o vincula ao registro JNDI. Um programador/desenvolvedor recupera o objeto DataSource do registro. Em seguida estabelecerá a conexão com o banco de dados.


43) Qual é a razão pela qual precisamos de um JdbcRowSet como o wrapper do ResultSet?

Podemos usar o objeto ResultSet como um componente JavaBeans.

  • Um JdbcRowSet também pode ser usado como um componente JavaBeans. É por isso que ele pode ser criado e configurado em tempo de design ou compilação e executado em tempo de execução.
  • Todos os objetos jdbcRowSet são roláveis ​​e atualizáveis.

44) De quantas maneiras podemos visualizar um conjunto de resultados?

Existem 2 maneiras de visualizar o ResultSet

  1. coluna
  2. índice da coluna.

Exemplo: getInt(String nomecoluna), getInt(int colunaIndex)


45) De quantas maneiras você pode atualizar um conjunto de resultados?

Os métodos a seguir ajudam você a atualizar o conjunto de resultados

  • atualizarLinha()
  • deleteRow()
  • atualizarLinha()
  • cancelRowUpdates()
  • inserirLinha()

46) Por que devemos fechar conexões com banco de dados em Java?

Como prática recomendada, devemos fechar o conjunto de resultados, a instrução e a conexão. Se a conexão vier de um pool, ao fechar, a conexão será enviada de volta ao pool para reutilização. Estamos fazendo isso no bloco finalmente{} porque, se ocorrer alguma exceção, ainda teremos a chance de fechá-lo.


47) Por que estamos usando tipos de dados blob em JDBC?

Eles são usados ​​para armazenar uma grande quantidade de dados no banco de dados, como imagens, filmes, etc.


48) Como definir o atributo Simultaneidade no ResultSet?

Existem dois níveis de simultaneidade

  1. CONCUR_READ_ONLY – É apenas para leitura.
  2. CONCUR_UPDATABLE - Serve para leitura e atualização.

49) Qual é a diferença entre cursores de banco de dados cliente e servidor?

Cursor do lado do servidor significa que os dados e resultados são salvos no servidor. Somente quando os dados solicitados são enviados ao cliente.

Cursor do lado do cliente significa todos os dados enviados para o local do cliente.


50) Como inserir imagens no banco de dados usando JDBC?

Imagens no banco de dados usando o tipo de dados BLOB em que a imagem é armazenada como um fluxo de bytes. O código abaixo mostra como inserir a imagem no banco de dados.

Connection con = null;

PreparedStatement prs = null;

InputStream inputstrm = null;

Class.forName("oracle.jdbc.driver.OracleDriver");

con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:mydb","username","yourpassword");

//localhost is your machine or hostname

//1521 is your oracle database port number

//mydb is your oracle database name.

prs = con.prepareCall("insert into emp_profile values (?,?)");

prs.setInt(1, 1223);

inputstrm = new FileInputStream(new File("emp_img.jpg"));

prs.setBinaryStream(2, inputstrm);

int count = prs.executeUpdate();

Essas perguntas da entrevista também ajudarão em sua viva (oral)

Partilhar

2 Comentários

  1. muito útil para os alunos………..

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *