top 25 jdbc interview questions
Este tutorial fornece perguntas e respostas frequentes da entrevista JDBC com explicações para ajudá-lo a se preparar para a entrevista:
No Processamento de lote JDBC e procedimento armazenado tutorial do Série de tutoriais JDBC , aprendemos métodos para fazer processamento em lote em Java usando o driver JDBC e também aprendemos a criar procedimentos armazenados e chamá-los de um programa Java.
JDBC é a forma abreviada comumente usada para Java Database Connectivity. Usando JDBC, podemos interagir com diferentes tipos de bancos de dados relacionais, como Oracle, MySQL, MS Access, etc.
Este artigo irá ajudá-lo a decifrar a entrevista JDBC. Explicamos aqui todos os conceitos importantes do JDBC.
Perguntas frequentes da entrevista JDBC
P # 1) O que é JDBC?
Responda: O Java Database Connectivity é não oficialmente conhecido como JDBC. É usado para realizar operações de banco de dados no banco de dados a partir do aplicativo Java. Suporta interação com qualquer tipo de banco de dados como Oracle, MySQL, MS Access, etc.
P # 2) Qual é o uso do driver JDBC?
Responda: É um componente de software e serve para fazer com que a aplicação Java interaja com o Banco de Dados.
P # 3) Quais são os diferentes tipos de drivers em JDBC?
Responda: Existem 4 drivers JDBC diferentes no mercado.
Eles estão:
- Tipo I: JDBC - Ponte ODBC
- Tipo II: API nativa - driver Half Java
- Tipo III: Protocolo de rede - driver totalmente Java
- Tipo IV: Driver fino - driver totalmente Java
Tipo I: Ponte JDBC-ODBC
A ponte JDBC-ODBC vai se comportar como uma interface entre o cliente e o servidor de banco de dados. O cliente deve colocar o driver JDBC-ODBC nele. O banco de dados deve oferecer suporte ao driver ODBC. Se não estivermos preocupados com a instalação do driver dentro do sistema cliente, usaremos este driver.
Tipo II: API nativa: meio driver Java
É quase como um driver JDBC-ODBC. Em vez de um driver ODBC, estamos usando API nativa aqui. Bibliotecas do banco de dados do lado do cliente são usadas.
Tipo III: Protocolo de Rede
Funciona como uma abordagem de 3 camadas para acessar o banco de dados. Um servidor intermediário será usado para se conectar ao banco de dados. As chamadas de método JDBC enviam dados para um servidor intermediário, então o servidor se comunicará com o banco de dados.
Tipo IV: Driver Fino
É absolutamente escrito em Java. Ele converte explicitamente chamadas de método JDBC no protocolo de banco de dados específico do fornecedor. Hoje em dia, o próprio comerciante de banco de dados está fornecendo este tipo de driver para seus clientes. Portanto, os programadores não dependem de outras fontes. Oferece um desempenho superior aos outros drivers.
Q # 4) Que tipo de driver JDBC é usado pela maioria das pessoas?
Responda: O driver Thin Tipo IV é usado na maioria dos aplicativos. Ele é desenvolvido pelo próprio fornecedor do banco de dados para que os desenvolvedores possam usá-lo diretamente, sem depender de nenhuma outra fonte. Ele permite um desenvolvimento simples e fácil. Oferece um desempenho superior aos outros drivers.
P # 5) Quais são os tipos de arquitetura JDBC?
Responda: JDBC suporta 2 tipos de modelos de processamento para acessar o banco de dados.
Eles estão:
- Arquitetura de duas camadas: Aqui, os programas Java se conectam explicitamente ao DB. Não precisamos de nenhum mediador como servidor de aplicativos para nos conectarmos com o banco de dados, exceto o driver JDBC. Também é conhecida como arquitetura cliente-servidor.
- Arquitetura de três camadas: É totalmente o inverso da arquitetura de duas camadas. Não haverá comunicação explícita entre o driver JDBC ou o programa Java e o banco de dados. Um servidor de aplicativos é usado como mediador entre eles. O programa Java enviará a solicitação a um servidor de aplicativos, e o servidor a enviará e receberá a resposta de / para o banco de dados.
P # 6) Quais são os componentes do JDBC?
Responda: Existem 4 componentes principais disponíveis no JDBC.
Eles estão:
- API JDBC
- Gerenciador de driver JDBC
- Conjunto de teste JDBC
- JDBC - Ponte ODBC
P # 7) Quais são as etapas para se conectar ao JDBC?
Responda: Existem 6 etapas básicas para se conectar ao DB em Java. Eles estão listados abaixo:
- Pacote de importação
- Motorista de carga
- Estabelecer conexão
- Criação e execução da declaração
- Obter resultados
- Fechar conexão
P # 8) Quais tipos de dados são usados para armazenar a imagem e o arquivo na tabela do banco de dados?
Responda:
- Tipo de dados BLOB é usado para armazenar a imagem no banco de dados. Podemos armazenar vídeos e áudios também no tipo de dados BLOB. Ele é usado para armazenar o tipo binário de dados.
- Tipo de dados CLOB é usado para armazenar o arquivo no banco de dados. É usado para armazenar o tipo de caractere dos dados.
P # 9) O que é DriverManager em JDBC?
Responda: DriverManager é uma classe integrada que está presente no pacote java.sql. Ele será usado como um mediador entre o aplicativo Java e o banco de dados, que estamos conectando / usando em nosso código. Como primeiro passo, precisamos registrar ou carregar o driver com DriverManager. Em seguida, o driver estará disponível para uso no aplicativo.
A principal função do DriverManager é carregar a classe do driver do Banco de Dados e criar uma conexão com o DB.
Existem 2 maneiras de registrar ou carregar o driver:
- Class.forName ()
- DriverManager.registerDriver ()
P # 10) Qual é a diferença entre as interfaces Statement e PreparedStatement.
Resposta: A tabela abaixo explica as diferenças:
DEMONSTRAÇÃO | DECLARAÇÃO PREPARADA |
---|---|
Será usado principalmente para executar instruções SQL estáticas | Será usado principalmente para executar instruções SQL pré-compiladas |
Não aceitará parâmetros em tempo de execução | Ele aceitará diferentes parâmetros em tempo de execução |
Seu desempenho é menor em comparação com a declaração preparada | Seu desempenho é superior ao da instrução, pois está executando as instruções SQL pré-compiladas |
É apropriado para executar instruções DDL, como CREATE, DROP, ALTER e TRUNCATE | É apropriado para executar instruções DML, como INSERT, UPDATE e DELETE |
Não pode ser usado para armazenar ou recuperar imagem e arquivo no banco de dados | Ele pode ser usado para armazenar ou recuperar imagem e arquivo no banco de dados |
Ele impõe injeção de SQL | Impede injeção de SQL |
Leitura sugerida = >> Declaração e declaração preparada JDBC
Q # 11) Explique a diferença entre execute (), executeQuery () e executeUpdate ().
Responda:
executeQuery () | executeUpdate () | Executar() |
---|---|---|
É usado para executar as instruções SQL que recuperam alguns dados do banco de dados | É usado para executar as instruções SQL que irão atualizar ou modificar os dados no banco de dados | É usado para executar qualquer tipo de instrução SQL |
Ele retorna o objeto resultSet | Ele retorna um valor inteiro que representa o não. de linhas afetadas | Ele retorna um valor booleano TRUE - retorna um objeto resultSet FALSE - retorna um valor int ou nada |
É usado para executar apenas a consulta SELECT | É usado para executar apenas uma consulta não SELECT | É usado para executar consultas SELECT e não-SELECT |
Q # 12) Como chamar Stored Procedures em JDBC?
Responda: Podemos executar os procedimentos SQL Stored por meio da interface CallableStatement. O objeto CallableStatement pode ser criado usando o método prepareCall () da interface Connection.
Q # 13) O que é a interface ResultSet?
Responda: A interface ResultSet é usada para armazenar os dados de saída após a execução da consulta SQL. O objeto de ResultSet mantém o ponto do cursor nos dados de resultado. Como padrão, o cursor aponta antes da primeira linha dos dados de resultado. Também podemos percorrer os dados nos objetos do conjunto de resultados.
o melhor conversor de vídeo para mac
Sintaxe:
Interface de declaração:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
Interface PreparedStatement:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
Q # 14) Quais são os tipos de ResultSet?
Responda: Existem 3 tipos de ResultSet. Esses são:
converter youtube para mp4 de alta qualidade
- TYPE_FORWARD_ONLY: É a opção padrão. O cursor se moverá do início ao fim.
- TYPE_SCROLL_INSENSITIVE: Nesse tipo, o cursor se moverá nas direções para frente e para trás. O conjunto de dados contém os dados quando a consulta SQL retorna os dados.
- TYPE_SCROLL_SENSITIVE: É o mesmo que TYPE_SCROLL_INSENSITIVE, a diferença é que ele terá os dados atualizados ao iterar o objeto do conjunto de resultados.
Q # 15) Quais são os modos de simultaneidade no ResultSet?
Responda: Existem 2 modos diferentes de simultaneidade no ResultSet. Eles estão:
- ResultSet.CONCUR_READ_ONLY : É o modo de simultaneidade padrão. Uma opção somente leitura está disponível. A atualização não é possível.
- ResultSet.CONCUR_UPDATABLE: A atualização é possível.
Q # 16) Como verificar se o banco de dados suporta o modo de simultaneidade?
Responda: Temos o método supportedResultSetConcurrency () que será usado para verificar se o tipo dado e os modos de simultaneidade são suportados pelo banco de dados ou não.
Q # 17) Podemos obter os dados de uma linha específica do conjunto de resultados?
Observação: ResultSet tem os dados de um conjunto de linhas
Responda: Sim, podemos obter os dados de uma linha específica do resultSet usando o método relative (). Ele moverá o cursor para a linha fornecida, tanto para frente quanto para trás da linha atual. Se o valor positivo for dado, ele se moverá para frente. Se o valor negativo for fornecido, ele se moverá para trás.
Q # 18) Qual é o uso dos métodos getter e setter no ResultSet?
Responda:
Métodos getter: Eles são usados para recuperar os valores de uma coluna específica da tabela do ResultSet. O valor do índice da coluna ou o nome da coluna deve ser passado como um parâmetro. Normalmente, representaremos o método getter como métodos getXXX ().
Exemplo:
- int getInt (string Column_Name): É usado para recuperar o valor da coluna especificada Índice e tipo de dados int como um tipo de retorno.
Métodos de setter: Podemos definir o valor no banco de dados usando métodos setter ResultSet. É semelhante aos métodos getter, mas aqui precisamos passar os valores / dados para a coluna específica a ser inserida no banco de dados e o valor do índice ou nome da coluna dessa coluna. Normalmente iremos representar o método setter como métodos setXXX ().
Exemplo:
- void setInt (int Column_Index, int Data_Value): É usado para inserir o valor do índice da coluna especificada com um valor int.
P # 19) Qual é o objetivo principal da interface ResultSetMetaData?
Responda: Esta interface fornece mais informações sobre ResultSet. Cada objeto ResultSet foi associado a um objeto ResultSetMetaData.
Este objeto terá os detalhes das propriedades das colunas como tipo de dados da coluna, nome da coluna, o número de colunas nessa tabela, nome da tabela, nome do esquema, etc., o método getMetaData () do objeto ResultSet é usado para criar o Objeto ResultSetMetaData.
Sintaxe:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
Q # 20) O que é DatabaseMetaData?
Responda: A interface DatabaseMetaData fornece informações sobre o banco de dados que estamos usando. Obteremos as seguintes informações - DatabaseName, versão do banco de dados e assim por diante.
Q # 21) O que é propriedade ACID?
Responda:
- A – Atomicidade -> Se todas as consultas foram executadas com sucesso, os dados serão confirmados, caso contrário, não serão confirmados.
- C - Consistência -> Os dados devem ser consistentes após qualquer transação.
- I – Isolamento -> Cada transação deve ser isolada.
- D – Durabilidade -> Se a transação for confirmada uma vez, ela deve estar disponível sempre (se nenhuma mudança tiver acontecido)
Q # 22) Como alterar o valor do modo auto-commit?
Responda: Por padrão, o valor de AutoCommit é TRUE. Após a execução da instrução SQL, ela será confirmada automaticamente. Usando o método setAutoCommit (), podemos alterar o valor para AutoCommit.
P # 23) Qual é o uso dos métodos Commit e Rollback?
Responda:
Método Commit (): Temos o método commit () em Java para confirmar os dados. Assim que a execução do SQL estiver concluída, podemos chamar o método commit.
Sintaxe: connectionobj.commit ();
Método Rollback (): Temos o método rollback () em Java para reverter os dados. Reverter significa desfazer as alterações. Se alguma das instruções SQL falhar, podemos chamar o método rollback para desfazer as alterações.
Sintaxe: connectionobj.rollback ();
Q # 24) O que é savepoint e quais são os métodos que temos em JDBC para savepoint?
Responda: O ponto de salvamento é usado para criar pontos de verificação em uma transação e nos permite realizar um rollback para o ponto de salvamento específico. Depois que a transação for confirmada ou revertida, o ponto de salvamento que foi criado para uma transação será destruído automaticamente e se tornará inválido.
Métodos para Savepoint:
- Método setSavepoint (): É usado para criar o ponto de salvamento, podemos usar o método rollback () para desfazer todas as alterações até o ponto de salvamento.
- Método releaseSavepoint (): É usado para remover o ponto de salvamento fornecido.
Q # 25) Liste algumas exceções que vêm sob SQLException?
Responda:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Clique aqui para obter mais informações sobre as exceções acima.
P # 26) O que é processamento em lote e como fazê-lo em JDBC?
Responda: O processamento em lote é o processo de execução de várias instruções SQL em uma transação. Isso reduzirá o tempo de comunicação e aumentará o desempenho. Isso torna o processamento de uma grande quantidade de dados muito mais fácil.
Vantagens do processamento em lote:
- Melhorar o desempenho
- A consistência dos dados
Como realizar o processamento em lote:
Temos os métodos addBatch () e executeBatch () em Java para realizar o processamento em lote. Esses 2 métodos estão presentes nas classes Statement e PreparedStatement.
Q # 27) Qual é o procedimento armazenado?
Responda: Um grupo de consultas SQL que são executadas como uma única unidade para realizar uma tarefa específica é conhecido como procedimento armazenado. Podemos passar 3 tipos diferentes de parâmetros. Cada procedimento é representado por seu nome. Portanto, o nome do procedimento deve ser exclusivo.
>> Para obter mais informações sobre o procedimento armazenado, consulte este ligação .
Q # 28) Quais são os tipos de parâmetro em procedimentos armazenados?
Responda: Existem três tipos de parâmetros disponíveis em Stored Procedures. Eles estão:
- NO: Usado para passar os valores de entrada para o procedimento.
- FORA: Usado para obter o valor do procedimento.
- IN / OUT: Usado para passar os valores de entrada e obter o valor de / para o procedimento.
Conclusão
Estas são algumas perguntas da entrevista JDBC que cobrem os níveis básico e avançado. Esperamos que este tutorial forneça uma visão geral do JDBC. As explicações fornecidas acima irão enriquecer seu conhecimento e aumentar sua compreensão do JDBC. Muito bem sucedida!!!
Leitura recomendada
- Tutorial de conexão Java JDBC com exemplo de programação
- Gerenciamento de transações Java JDBC com exemplo
- Tutorial Java JDBC: O que é JDBC (Java Database Connectivity)
- ResultSet JDBC: como usar o ResultSet Java para recuperar dados
- Perguntas e respostas da entrevista
- 25 melhores perguntas e respostas da entrevista de teste do Agile
- Perguntas e respostas da entrevista de teste de ETL
- As 25 principais perguntas e respostas da entrevista sobre Java Web Services