Die 50 wichtigsten Fragen und Antworten zu JDBC-Interviews (2024)

Hier finden Sie Fragen und Antworten zu Java Database Connectivity (JDBC)-Interviews für Berufseinsteiger und erfahrene Kandidaten, die ihren Traumjob bekommen möchten.

Kostenloser PDF-Download: Fragen zum JDBC-Interview


1) Was ist JDBC?

JDBC steht für Java Database Connectivity. JDBC ist eine Java-API, die mit der Datenbank kommuniziert und SQL-Abfragen ausführt.


2) Was ist ein JDBC-Treiber und wie viele JDBC-Treiber sind verfügbar?

Der JDBC-Treiber enthält Klassen und Schnittstellen, die Java-Anwendungen und -Datenbanken unterstützen.

Es gibt 4 Arten von JDBC-Treibern.

  1. Treiber vom Typ 1 oder JDBC-ODBC-Brückentreiber.
  2. Typ-2-Treiber oder Native-API, teilweise Java-Treiber.
  3. Typ-3-Treiber oder Netzwerkprotokoll, reiner Java-Treiber.
  4. Typ-4-Treiber oder reiner Java-Treiber mit nativem Protokoll.

3) Wie kann ich eine Verbindung herstellen? MySQL oder Oracle mit 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; }

Codeerklärung

Class.forName erstellt eine Instanz des JDBC-Treibers und registriert sich bei DriverManager.

Die Methode getConnection() stellt immer eine Verbindung zu einer Datenbank her.

Wir müssen ein Statement-Objekt aus dem obigen Verbindungsobjekt erstellen. Die Anweisung gibt ein Ergebnismengenobjekt zurück. ResultSet.next () bedeutet, dass die Ergebnismenge immer noch eine Zeile zurückgibt.


4) Welcher JDBC-Treiber ist der schnellste Treiber?

Typ 4-Treiber oder Native-Protokoll, reiner Java-Treiber, ist der schnellste Treiber.


5) Was sind die JDBC-API-Komponenten?

Es gibt vier Arten von Komponenten

  1. JDBC-API
  2. JDBC-Treibermanager
  3. JDBC-Testsuite
  4. JDBC-ODBC-Brücke
Fragen zum JDBC-Interview
Fragen zum JDBC-Interview

6) Was sind die JDBC-Anweisungen?

Es gibt drei Arten von JDBC-Anweisungen, wie unten aufgeführt:

  1. Erklärung: Es wird ausgeführt SQL Abfrage (statische SQL-Abfrage) gegen die Datenbank.
  2. Vorbereitete Erklärung: Wird verwendet, wenn wir eine SQL-Anweisung wiederholt ausführen möchten. Eingabedaten sind dynamisch und werden zur Laufzeit eingegeben.
  3. Abrufbare Erklärung: Wird verwendet, wenn wir gespeicherte Prozeduren ausführen möchten.

7) Wie können wir gespeicherte Prozeduren ausführen?

Gespeicherte Prozeduren können mit der JDBCcallable-Anweisung ausgeführt werden. Hier ist der Code.

Connection conn = null;

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

callStmt.setString(1, "abcdefg");


8) Welche Vorteile bietet die Verwendung von PreparedStatement in Java?

Die vorbereitete Anweisung wird verwendet, um dieselben SQL-Anweisungen wiederholt auszuführen. Die vorbereitete Anweisung wird nur einmal kompiliert, obwohl sie „n“-mal verwendet wurde


9) Was ist ResultSet?

Die java.sql.ResultSet-Schnittstelle bezeichnet die Ergebnismenge einer SQL-Abfrage. Das bedeutet, dass ein Cursor auf eine Zeile einer Tabelle zeigt; es zeigt auf vor der ersten Zeile.


10) Welche Arten von ResultSet gibt es?

Es stehen drei Arten von ResultSet zur Verfügung. Wenn wir kein ResultSet deklarieren, bedeutet das, dass wir TYPE_FORWARD_ONLY aufrufen

  1. TYPE_FORWARD_ONLY: Cursor kann sich nur vorwärts bewegen.
  2. TYPE_SCROLL_INSENSITIVE: Der Cursor kann sich vorwärts und rückwärts bewegen, ist aber nicht empfindlich.
  3. TYPE_SCROLL_SENSITIVE: Der Cursor kann sich vorwärts und rückwärts bewegen, ist jedoch empfindlich

11) Erklären Sie den Unterschied zwischen RowSet und ResultSet in JDBC?

In einer ResultSet-Handle-Verbindung zu einer Datenbank können wir Result nicht als serialisiertes Objekt erstellen.

Aufgrund des oben genannten Problems können wir Resultset nicht über das Netzwerk weiterleiten.

RowSet erweitert die ResultSet-Schnittstelle, sodass alle Methoden von ResultSet enthalten sind. RowSet ist serialisiert.

Wir können also Rowset von einer Klasse an eine andere Klasse übergeben, da es keine Verbindung zur Datenbank hat.


12) Warum sollten Sie setAutoCommit(false) in JDBC verwenden?

Wenn Sie das automatische Commit deaktivieren möchten, legen Sie „connection.setAutoCommit(false)“ fest.


13) Was sind Datenbankwarnungen in JDBC und wie können wir mit Datenbankwarnungen in JDBC umgehen?

SQL-Warnung oder Datenbankwarnung ist die Unterklasse der SQLException-Klasse. Wir können damit umgehen, indem wir die Methode getWarnings() für Connection, Statement und ResultSet verwenden


14) Kann ich ein Null-ResultSet erhalten?

Nein, wir können keinen Null-Ergebnissatz erhalten. ResultSet.next() kann null zurückgeben, wenn der nächste Datensatz keine Zeile enthält.


15) Was verstehen Sie unter Metadaten und warum verwenden wir sie?

Unter Metadaten versteht man Daten oder Informationen über andere Daten. Wir verwenden Metadaten, um die Produktversion der Datenbank, den Treibernamen und die Gesamtzahl der Tabellen und Ansichten abzurufen.


16) Was ist der Unterschied zwischen „executing“, „executeQuery“ und „executeUpdate“ in JDBC?

execute(): kann für jede Art von SQL-Abfrage verwendet werden.

executeQuery(): kann für Auswahlabfragen verwendet werden.

executeUpdate(): kann zum Ändern/Aktualisieren der Tabelle verwendet werden.


17) Was ist Datenbankverbindungspooling? Vorteile der Verwendung eines Verbindungspools?

Verbindungspooling bedeutet, dass Verbindungen im Cache gespeichert werden und wir sie in Zukunft wiederverwenden können.

Vorteil:

  1.  Es ist schneller
  2.  Durch das Verbindungspooling lassen sich Datenbankverbindungen einfacher diagnostizieren und analysieren.

18) Welche Funktion hat die DriverManager-Klasse?

Es ist eine Schnittstelle zwischen Benutzer und Fahrern. DriverManager verfolgt die gesamte Aktivität zwischen einer Datenbank und dem entsprechenden Treiber.


19) Was bedeuten Batch-Updates?

Unter Batch-Updates versteht man die gleichzeitige Ausführung eines Satzes/einer Gruppe von SQL-Abfragen.

Stapelaktualisierungen können nur zum Einfügen, Aktualisieren und Löschen verwendet werden, nicht jedoch für Auswahlabfragen.


20) Wie viele Pakete sind in der JDBC-API verfügbar?

In der JDBC-API sind zwei Arten von Paketen verfügbar

  1. java.sql
  2. javax.sql

21) Was ist der Rückgabetyp von Execute, ExecuteQuery und ExecuteUpdate?

Der Rückgabetyp der Ausführung ist Boolesch

Der Rückgabetyp vonexecuteQuery ist das ResultSet-Objekt

Der Rückgabetyp vonexecuteUpdate ist int


22) Der Index des Ergebnissatzes beginnt mit 0 oder 1?

Der Index des Ergebnissatzes beginnt mit 1.


23) Welche Rolle spielt Class.forName beim Laden von Treibern?

Class.forName erstellt eine Instanz des JDBC-Treibers und registriert sich bei DriverManager.


24) JDBC-ODBC Bridge ist Multithread oder nicht?

Nein, die JDBC-ODBC Bridge verwendet synchronisierte Methoden, um alle an ODBC gerichteten Aufrufe zu serialisieren.


25) Welche Schnittstelle übernimmt die Transaktionsverwaltung in JDBC?

Die Verbindungsschnittstelle übernimmt die Transaktionsverwaltung in JDBC. Es stellt Methoden für Commit (), Rollback () usw. bereit.


26) Warum tritt die Fehlermeldung „Kein passender Treiber“ auf?

„Kein geeigneter Treiber“ tritt auf, wenn wir die Methode DriverManager.getConnection aufrufen.

Dies kann aus folgenden Gründen auftreten:

  • Vor dem Aufruf der getConnection-Methode können keine genauen JDBC-Treiber geladen werden.
  • Möglicherweise ist die JDBC-URL ungültig oder falsch.

27) Vorbereitete Anweisungen sind schneller. Warum?

Die Ausführung einer vorbereiteten Anweisung ist schneller als die direkte Ausführung, da die Anweisung nur einmal kompiliert wird. Vorbereitete Anweisungen und JDBC-Treiber werden während der Ausführung miteinander verbunden, und es entsteht kein Verbindungsaufwand.


28) Ist es möglich, eine Verbindung zu mehreren Datenbanken herzustellen? Können wir mit einer einzigen Anweisung Daten aus zwei, drei oder vielen Datenbanken aktualisieren oder extrahieren?

Ja, es ist möglich, gleichzeitig eine Verbindung zu mehreren Datenbanken herzustellen, dies hängt jedoch vom jeweiligen Treiber ab.

Um Daten aus den verschiedenen Datenbanken zu aktualisieren und zu extrahieren, können wir die einzelne Anweisung verwenden. Wir benötigen jedoch Middleware, um mit mehreren Datenbanken oder einer einzelnen Datenbank umgehen zu können.


29) Sagen Sie mir den Unterschied zwischen setMaxRows(int) und SetFetchSize(int)?

setMaxRows(int) SetFetchSize(int)?
Definiert, wie viele Zeilen ein Resultset gleichzeitig enthalten kann Definiert die Anzahl der Zeilen, die aus der Datenbank gelesen werden.

30) Erzählen Sie mir etwas über Sonderzeichen?

Einem Sonderzeichen wird ein Escape-Zeichen vorangestellt. Beispiel -

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

31) Was bedeutet „Dirty Read“ in der Datenbank?

Dirty Read bedeutet „den Wert lesen, der möglicherweise korrekt oder nicht korrekt ist“.


32) Was meinst du mit zweiphasigen Commits?

Im verteilten Transaktionsprozess wird ein zweiphasiges Commit verwendet. Wenn eine Transaktion ausgeführt wird und sich diese auf mehrere Datenbanken auswirkt. Es werden zwei Phasen-Commits verwendet, um alle Datenbanken miteinander zu synchronisieren.


33) Wie viele Schließsysteme gibt es in JDBC?

In JDBC stehen zwei Arten der Sperrung zur Verfügung, mit denen wir mehr als einen Benutzer verwalten können.

Wenn zwei Benutzer denselben Datensatz anzeigen, erfolgt keine Sperrung. Wenn ein Benutzer einen Datensatz aktualisiert und der zweite Benutzer denselben Datensatz ebenfalls aktualisiert. Zu diesem Zeitpunkt werden wir das Sperren verwenden.

  1. Optimistisches Sperren: Der Datensatz wird nur gesperrt, wenn wir „aktualisieren“.
  2. Pessimistisches Sperren: Der Datensatz wird von der „Auswahl“-Zeit zum Anzeigen, Aktualisieren und Festschreiben gesperrt.

34) Welche Ausnahmen gibt es in JDBC?

In JDBC gibt es vier Arten von Ausnahmen.

  1. BatchUpdate-Ausnahme
  2. Datenkürzung
  3. SQL-Ausnahme
  4. SQL-Warnung

35) Geben Sie Schritte zum Herstellen einer Verbindung zur Datenbank mithilfe von JDBC an?

Es gibt zwei Möglichkeiten, eine Datenbank mithilfe von JDBC zu verbinden

  1. Mit DriverManager:

Die Treiberklasse wird mithilfe von class.forName(Treiberklasse) und Class.forName() geladen.

Nach dem Laden wird die Steuerung an DriverManager übergeben.

DriverManager.getConnection() erstellt die Verbindung für den Zugriff auf die Datenbank.

  1. Verwendung von DataSource:

Für DataSource ist die Verwendung von DriverManager mit Hilfe von JNDI nicht erforderlich. Die Datenquelle wird vom Naming-Service-Server gesucht. Die Methode DataSource.getConnection() gibt das Verbindungsobjekt an die Datenbank zurück.


36) Erklären Sie die JDBC-Architektur?

Die JDBC-API unterstützt sowohl 2-Ebenen- als auch 3-Ebenen-Modelle für die Datenbank.

Im 2-Ebenen-Modell interagiert die Java-Anwendung mit der Datenquelle

Im 3-Ebenen-Modell werden Befehle an eine „mittlere Ebene“ von Diensten umgeleitet. Danach werden Befehle an die Datenquelle gesendet.


37) Welche neuen Funktionen sind in JDBC 4.0 verfügbar?

Die neuen Funktionen sind

  • Automatisches Laden durch JDBC-Treiberklasse
  • Erweitertes Verbindungsmanagement
  • RowId SQL aktiviert
  • Von SQL mithilfe von Anmerkungen implementierter Datensatz
  • Verbesserungen der SQL-Ausnahmebehandlung
  • Unterstützt SQL XML Dateien

38) Welche Pakete werden in JDBC verwendet?

8 Pakete werden in JDBC verwendet –

  1. sql.Treiber
  2. Sichere
  3. Erklärung
  4. VorbereitetesStatement
  5. CallableStatement
  6. Ergebnismenge
  7. Ergebnissatz-Metadaten
  8. DatenbankMetaDaten

39) Wie viele RowSets sind in JDBC verfügbar?

Es stehen zwei Arten von Zeilensätzen zur Verfügung:

  1. vernetzt – Ein verbundenes RowSet-Objekt stellt sofort eine Verbindung zur Datenbank her. Wenn die Anwendung beendet wird, wird auch das verbundene RowSet-Objekt beendet.
  2. Getrennt – Ein nicht verbundenes RowSet-Objekt stellt nach Ausführung der erforderlichen Abfrage eine Verbindung zur Datenbank her.

40) Was bedeutet Verbindung?

Die Verbindungsschnittstelle besteht aus Methoden zur Interaktion mit der Datenbank.


41) JDBC-Speicherpunkt erklären?

Ein Sicherungspunkt stellt einen Punkt dar, zu dem die aktuelle Transaktion zurückgesetzt werden kann. Anstatt alle Änderungen rückgängig zu machen, kann es auch nur einige davon rückgängig machen.


42) Nennen Sie die Vorteile der Verwendung von DataSource?

Die Datenquelle teilt die Arbeit zwischen Administrator und Programmierer/Entwickler auf.

Der Administrator erstellt ein DataSource-Objekt und verknüpft es mit der JNDI-Registrierung. Ein Programmierer/Entwickler ruft das DataSource-Objekt aus der Registrierung ab. Anschließend wird die Verbindung zur Datenbank hergestellt.


43) Was ist der Grund, warum wir ein JdbcRowSet wie den Wrapper um ResultSet benötigen?

Wir können das ResultSet-Objekt als JavaBeans-Komponente verwenden.

  • Ein JdbcRowSet kann auch als JavaBeans-Komponente verwendet werden. Deshalb kann es zur Entwurfs- oder Kompilierungszeit erstellt und konfiguriert und zur Laufzeit ausgeführt werden.
  • Alle jdbcRowSet-Objekte sind scrollbar und aktualisierbar.

44) Auf wie viele Arten können wir eine Ergebnismenge anzeigen?

Es gibt zwei Möglichkeiten, ResultSet anzuzeigen

  1. Überblick
  2. Spaltenindex.

Beispiel: getInt(String ColumnName), getInt(int ColumnIndex)


45) Wie viele Möglichkeiten gibt es, eine Ergebnismenge zu aktualisieren?

Die folgenden Methoden helfen Ihnen, die Ergebnismenge zu aktualisieren

  • updateRow()
  • Zeile löschen()
  • RefreshRow()
  • cancelRowUpdates()
  • insertRow()

46) Warum sollten wir Datenbankverbindungen in Java schließen?

Als Best Practice müssen wir die Ergebnismenge, die Anweisung und die Verbindung schließen. Wenn die Verbindung aus einem Pool kommt, wird die Verbindung beim Schließen zur Wiederverwendung an den Pool zurückgesendet. Wir tun dies im „final{}“-Block, denn wenn eine Ausnahme auftritt, haben wir immer noch die Möglichkeit, diese zu schließen.


47) Warum verwenden wir Blob-Datentypen in JDBC?

Diese werden verwendet, um große Datenmengen wie Bilder, Filme usw. in der Datenbank zu speichern.


48) Wie stelle ich das Attribut Concurrency in ResultSet ein?

Es gibt zwei Parallelitätsebenen

  1. CONCUR_READ_ONLY – Es dient nur zum Lesen.
  2. CONCUR_UPDATABLE - Es dient sowohl zum Lesen als auch zum Aktualisieren.

49) Was ist der Unterschied zwischen Client- und Server-Datenbankcursorn?

Der serverseitige Cursor bedeutet, dass Daten und Ergebnisse auf dem Server gespeichert werden. Erst auf Anfrage werden die Daten an den Kunden gesendet.

Der clientseitige Cursor bezeichnet alle an den Clientstandort gesendeten Daten.


50) Wie fügt man Bilder mit JDBC in die Datenbank ein?

Bilder in der Datenbank verwenden den BLOB-Datentyp, wobei das Bild als Bytestream gespeichert wird. Der folgende Code zeigt, wie das Bild in die Datenbank eingefügt wird.

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();

Diese Interviewfragen helfen auch bei Ihrer mündlichen Prüfung

Teilen

2 Kommentare

  1. sehr nützlich für die Schüler………..

Hinterlassen Sie uns einen Kommentar

E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind MIT * gekennzeichnet. *