top 25 jdbc interview questions
Questo tutorial fornisce domande e risposte frequenti per l'intervista JDBC con spiegazioni per aiutarti a prepararti per l'intervista:
Nel Elaborazione batch JDBC e stored procedure tutorial di Serie di tutorial JDBC , abbiamo imparato i metodi per eseguire l'elaborazione batch in Java utilizzando il driver JDBC e abbiamo anche imparato a creare procedure memorizzate e chiamarle da un programma Java.
JDBC è l'abbreviazione comunemente utilizzata per Java Database Connectivity. Utilizzando JDBC, possiamo interagire con diversi tipi di database relazionali come Oracle, MySQL, MS Access, ecc.
Questo articolo ti aiuterà a decifrare l'intervista a JDBC. Abbiamo spiegato qui tutti i concetti importanti di JDBC.
Domande frequenti sui colloqui di JDBC
D # 1) Cos'è JDBC?
Risposta: Java Database Connectivity è ufficiosamente noto come JDBC. Viene utilizzato per eseguire operazioni DB nel database dall'applicazione Java. Supporta l'interazione con qualsiasi tipo di DB come Oracle, MySQL, MS Access, ecc.
D # 2) Qual è l'uso del driver JDBC?
Risposta: È un componente software e viene utilizzato per far interagire l'applicazione Java con il database.
D # 3) Quali sono i diversi tipi di driver in JDBC?
Risposta: Ci sono 4 diversi driver JDBC disponibili sul mercato.
Sono:
- Tipo I: JDBC - ODBC Bridge
- Tipo II: API nativa - Half Java Driver
- Tipo III: Protocollo di rete - Driver totalmente Java
- Tipo IV: Driver sottile: driver totalmente Java
Tipo I: JDBC-ODBC Bridge
Il bridge JDBC-ODBC si comporterà come un'interfaccia tra il client e il server DB. Il client dovrebbe inserire il driver JDBC-ODBC in esso. Il database dovrebbe supportare il driver ODBC. Se non siamo preoccupati per l'installazione del driver all'interno del sistema client, useremo questo driver.
Tipo II: API nativa: driver Half Java
È quasi come un driver JDBC-ODBC. Piuttosto che un driver ODBC, qui stiamo usando l'API nativa. Vengono utilizzate le librerie del database lato client.
Tipo III: protocollo di rete
Funziona come un approccio a 3 livelli per accedere al database. Verrà utilizzato un server intermedio per connettersi al DB. Le chiamate al metodo JDBC inviano i dati a un server intermedio, quindi il server comunicherà con DB.
Tipo IV: driver sottile
È assolutamente scritto in Java. Converte esplicitamente le chiamate al metodo JDBC nel protocollo database specifico del fornitore. Al giorno d'oggi, lo stesso commerciante di database fornisce questo tipo di driver ai propri clienti. Quindi i programmatori non si affidano ad altre fonti. Fornisce prestazioni superiori rispetto agli altri driver.
Q # 4) Quale tipo di driver JDBC viene utilizzato dalla maggior parte delle persone?
Risposta: Il driver sottile di tipo IV viene utilizzato nella maggior parte delle applicazioni. È sviluppato dal fornitore del database stesso in modo che gli sviluppatori possano usarlo direttamente senza dipendere da altre fonti. Consente uno sviluppo semplice e facile. Fornisce prestazioni superiori rispetto agli altri driver.
D # 5) Quali sono i tipi di architettura JDBC?
Risposta: JDBC supporta 2 tipi di modelli di elaborazione per accedere al DB.
Sono:
- Architettura a due livelli: Qui i programmi Java si connettono esplicitamente con DB. Non abbiamo bisogno di alcun mediatore come il server delle applicazioni per connettersi con DB tranne il driver JDBC. È anche nota come architettura client-server.
- Architettura a tre livelli: È totalmente inverso rispetto all'architettura a due livelli. Non ci sarà alcuna comunicazione esplicita tra il driver JDBC o il programma Java e il database. Un server delle applicazioni viene utilizzato come mediatore tra di loro. Il programma Java invierà la richiesta a un server delle applicazioni e il server la invierà e riceverà la risposta al / dal DB.
Q # 6) Quali sono i componenti di JDBC?
Risposta: Ci sono 4 componenti principali disponibili in JDBC.
Sono:
- API JDBC
- Gestione driver JDBC
- JDBC Test Suite
- JDBC - ODBC Bridge
D # 7) Quali sono i passaggi per connettersi a JDBC?
Risposta: Ci sono 6 passaggi di base per connettersi con DB in Java. Questi sono elencati di seguito:
- Importa pacchetto
- Carica driver
- Stabilisci la connessione
- Creazione ed esecuzione della dichiarazione
- Recupera i risultati
- Chiudere la connessione
D # 8) Quali tipi di dati vengono utilizzati per memorizzare l'immagine e il file nella tabella del database?
Risposta:
- Tipo di dati BLOB viene utilizzato per memorizzare l'immagine in DB. Possiamo memorizzare anche video e audio nel tipo di dati BLOB. Viene utilizzato per memorizzare il tipo di dati binario.
- Tipo di dati CLOB viene utilizzato per memorizzare il file in DB. Viene utilizzato per memorizzare il tipo di carattere dei dati.
D # 9) Cos'è DriverManager in JDBC?
Risposta: DriverManager è una classe incorporata presente nel pacchetto java.sql. Verrà utilizzato come mediatore tra l'applicazione Java e il DB, che stiamo collegando / utilizzando nel nostro codice. Come primo passo, dobbiamo registrare o caricare il driver con DriverManager. Quindi il driver sarà disponibile per l'uso nell'applicazione.
La funzione principale di DriverManager è caricare la classe driver del Database e creare una connessione con DB.
Esistono 2 modi per registrare o caricare il driver:
- Class.forName ()
- DriverManager.registerDriver ()
D # 10) Qual è la differenza tra le interfacce Statement e PreparedStatement.
Risposta: la tabella seguente spiega le differenze:
DICHIARAZIONE | DISCORSO PREPARATO |
---|---|
Verrà utilizzato principalmente per eseguire istruzioni SQL statiche | Verrà utilizzato principalmente per eseguire istruzioni SQL precompilate |
Non accetterà parametri in fase di esecuzione | Accetterà parametri diversi in fase di esecuzione |
Le sue prestazioni sono inferiori rispetto a readyStatement | Le sue prestazioni sono superiori a Statement poiché esegue le istruzioni SQL precompilate |
È appropriato per eseguire istruzioni DDL come CREATE, DROP, ALTER e TRUNCATE | È appropriato per eseguire istruzioni DML come INSERT, UPDATE e DELETE |
Non può essere utilizzato per memorizzare o recuperare immagini e file nel database | Può essere utilizzato per memorizzare o recuperare immagini e file nel DB |
Applica SQL Injection | Impedisce SQL Injection |
Lettura suggerita = >> Dichiarazione e istruzione preparate JDBC
Q # 11) Spiega la differenza tra execute (), executeQuery () ed executeUpdate ().
Risposta:
executeQuery () | executeUpdate () | Eseguire() |
---|---|---|
Viene utilizzato per eseguire le istruzioni SQL che recuperano alcuni dati dal DB | Viene utilizzato per eseguire le istruzioni SQL che aggiorneranno o modificheranno i dati nel DB | Viene utilizzato per eseguire qualsiasi tipo di istruzione SQL |
Restituisce l'oggetto resultSet | Restituisce un valore intero che rappresenta il no. delle righe interessate | Restituisce un valore booleano TRUE - restituisce un oggetto resultSet FALSE - restituisce un valore int o niente |
Viene utilizzato per eseguire solo SELECT Query | Viene utilizzato per eseguire solo una query non SELECT | Viene utilizzato per eseguire query SELECT e non SELECT |
D # 12) Come chiamare le stored procedure in JDBC?
Risposta: Possiamo eseguire le procedure SQL Stored tramite l'interfaccia CallableStatement. L'oggetto CallableStatement può essere creato utilizzando il metodo prepareCall () dell'interfaccia Connection.
Q # 13) Cos'è l'interfaccia ResultSet?
Risposta: L'interfaccia ResultSet viene utilizzata per memorizzare i dati di output dopo l'esecuzione della query SQL. L'oggetto di ResultSet mantiene il punto del cursore sui dati del risultato. Per impostazione predefinita, il cursore punta prima della prima riga dei dati del risultato. Possiamo anche attraversare i dati negli oggetti del gruppo di risultati.
come usare il comando di taglio in unix
Sintassi:
Interfaccia istruzioni:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
Interfaccia PreparedStatement:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
D # 14) Quali sono i tipi di ResultSet?
Risposta: Ci sono 3 tipi in ResultSet. Questi sono:
come scrivere casi di test manuali con un esempio
- TYPE_FORWARD_ONLY: È l'opzione predefinita. Il cursore si sposterà dall'inizio alla fine.
- TYPE_SCROLL_INSENSITIVE: In questo tipo, il cursore si sposterà sia in avanti che indietro. Il set di dati contiene i dati quando la query SQL restituisce i dati.
- TYPE_SCROLL_SENSITIVE: È lo stesso di TYPE_SCROLL_INSENSITIVE, la differenza è che avrà i dati aggiornati durante l'iterazione dell'oggetto gruppo di risultati.
D # 15) Quali sono le modalità di concorrenza in ResultSet?
Risposta: Esistono 2 diverse modalità di concorrenza in ResultSet. Sono:
- ResultSet.CONCUR_READ_ONLY : È la modalità simultanea predefinita. È disponibile un'opzione di sola lettura. L'aggiornamento non è possibile.
- ResultSet.CONCUR_UPDATABLE: È possibile l'aggiornamento.
D # 16) Come verificare se il database supporta la modalità concorrenza?
Risposta: Abbiamo il metodo supportsResultSetConcurrency () che verrà utilizzato per verificare se il tipo specificato e le modalità di concorrenza sono supportate o meno dal database.
Q # 17) Possiamo ottenere i dati di una determinata riga dal gruppo di risultati?
Nota: ResultSet contiene i dati di un insieme di righe
Risposta: Sì, possiamo ottenere i dati di una determinata riga da resultSet utilizzando il metodo relative (). Sposterà il cursore sulla riga data in avanti o indietro rispetto alla riga corrente. Se è stato fornito il valore positivo, si sposterà in avanti. Se è stato dato il valore negativo, si muoverà nella direzione indietro.
D # 18) Qual è l'uso dei metodi getter e setter in ResultSet?
Risposta:
Metodi Getter: Questi vengono utilizzati per recuperare i valori della particolare colonna della tabella da ResultSet. Il valore Indice colonna o Nome colonna deve essere passato come parametro. Normalmente, rappresenteremo il metodo getter come metodi getXXX ().
Esempio:
- int getInt (stringa Column_Name): Viene utilizzato per recuperare il valore della colonna Index e del tipo di dati int specificati come tipo restituito.
Metodi di settaggio: Possiamo impostare il valore nel database utilizzando i metodi setter ResultSet. È simile ai metodi getter, ma qui è necessario passare i valori / dati per la particolare colonna da inserire nel database e il valore di indice o il nome della colonna di quella colonna. Normalmente rappresenteremo il metodo setter come metodi setXXX ().
Esempio:
- void setInt (int Column_Index, int Data_Value): Viene utilizzato per inserire il valore della colonna Index specificata con un valore int.
D # 19) Qual è lo scopo principale dell'interfaccia ResultSetMetaData?
Risposta: Questa interfaccia fornisce ulteriori informazioni su ResultSet. Ogni oggetto ResultSet è stato associato a un oggetto ResultSetMetaData.
Questo oggetto avrà i dettagli delle proprietà delle colonne come il tipo di dati della colonna, il nome della colonna, il numero di colonne in quella tabella, il nome della tabella, il nome dello schema, ecc., Il metodo getMetaData () dell'oggetto ResultSet viene utilizzato per creare il Oggetto ResultSetMetaData.
Sintassi:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
D # 20) Che cos'è DatabaseMetaData?
Risposta: L'interfaccia DatabaseMetaData fornisce informazioni sul database che stiamo utilizzando. Otterremo le seguenti informazioni: DatabaseName, versione del database e così via.
D # 21) Cos'è la proprietà ACID?
Risposta:
- A – Atomicità -> Se tutte le query sono state eseguite correttamente, i dati verranno salvati altrimenti non verrà eseguito il commit.
- C – Consistenza -> I dati dovrebbero essere coerenti dopo ogni transazione.
- I – Isolamento -> Ogni transazione dovrebbe essere isolata.
- D – Durabilità -> Se la transazione viene confermata una volta, dovrebbe essere sempre disponibile (se non sono state apportate modifiche)
D # 22) Come modificare il valore della modalità di commit automatico?
Risposta: Per impostazione predefinita, il valore di AutoCommit è TRUE. Dopo l'esecuzione dell'istruzione SQL, verrà eseguito automaticamente il commit. Utilizzando il metodo setAutoCommit (), possiamo modificare il valore in AutoCommit.
D # 23) Qual è l'uso dei metodi Commit e Rollback?
Risposta:
Metodo Commit (): Abbiamo il metodo commit () in Java per eseguire il commit dei dati. Una volta completata l'esecuzione SQL, possiamo chiamare il metodo commit.
Sintassi: connectionobj.commit ();
Metodo rollback (): Abbiamo il metodo rollback () in Java per eseguire il rollback dei dati. Rollback significa annullare le modifiche. Se una qualsiasi delle istruzioni SQL fallisce, possiamo chiamare il metodo rollback per annullare le modifiche.
Sintassi: connectionobj.rollback ();
D # 24) Cos'è savepoint e quali sono i metodi che abbiamo in JDBC per savepoint?
Risposta: Savepoint viene utilizzato per creare checkpoint in una transazione e ci consente di eseguire un rollback al savepoint specifico. Una volta eseguito il commit o il rollback della transazione, il punto di salvataggio creato per una transazione verrà automaticamente distrutto e non sarà più valido.
Metodi per Savepoint:
- metodo setSavepoint (): Viene utilizzato per creare Savepoint, possiamo usare il metodo rollback () per annullare tutte le modifiche fino al savepoint.
- metodo releaseSavepoint (): Viene utilizzato per rimuovere il punto di salvataggio specificato.
D # 25) Elencare alcune eccezioni che rientrano in SQLException?
Risposta:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Fare clic Qui per ulteriori informazioni sulle eccezioni di cui sopra.
Q # 26) Che cos'è l'elaborazione batch e come eseguirla in JDBC?
Risposta: L'elaborazione batch è il processo di esecuzione di più istruzioni SQL in una transazione. In questo modo si ridurranno i tempi di comunicazione e si aumenteranno le prestazioni. Rende molto più semplice l'elaborazione di una grande quantità di dati.
Vantaggi dell'elaborazione in batch:
- Migliorare la prestazione
- Coerenza dei dati
Come eseguire l'elaborazione in batch:
Abbiamo metodi addBatch () ed executeBatch () in Java per eseguire l'elaborazione Batch. Questi 2 metodi sono presenti nelle classi Statement e PreparedStatement.
Q # 27) Qual è la stored procedure?
Risposta: Un gruppo di query SQL che vengono eseguite come una singola unità per eseguire una particolare attività è noto come stored procedure. Possiamo passare 3 diversi tipi di parametri. Ogni procedura è rappresentata dal suo nome. Quindi il nome della procedura dovrebbe essere univoco.
>> Per ulteriori informazioni sulla stored procedure, fare riferimento a questo collegamento .
D # 28) Quali sono i tipi di parametri nelle stored procedure?
Risposta: Sono disponibili tre tipi di parametri nelle stored procedure. Sono:
- NEL: Utilizzato per passare i valori di input alla procedura.
- SU: Utilizzato per ottenere il valore dalla procedura.
- DENTRO FUORI: Utilizzato per passare i valori di input e ottenere il valore alla / dalla procedura.
Conclusione
Queste sono alcune domande dell'intervista JDBC che coprono sia il livello di base che quello avanzato. Ci auguriamo che questo tutorial ti offra una panoramica di JDBC. Le spiegazioni fornite sopra arricchiranno la tua conoscenza e aumenteranno la tua comprensione di JDBC. Ti auguro il meglio!!!
Lettura consigliata
- Tutorial di connessione Java JDBC con esempio di programmazione
- Gestione transazioni Java JDBC con esempio
- Tutorial Java JDBC: cos'è JDBC (Java Database Connectivity)
- ResultSet JDBC: come utilizzare il ResultSet Java per recuperare i dati
- Domande e risposte dell'intervista
- 25 migliori domande e risposte per l'intervista al test agile
- ETL Testing Interview Domande e risposte
- Top 25 domande e risposte ai colloqui sui servizi Web Java