Top 50 JDBC-interviewvragen en antwoorden (2024)

Hier zijn Java Database Connectivity (JDBC) sollicitatievragen en antwoorden voor zowel eerstejaars als ervaren kandidaten om hun droombaan te krijgen.

Gratis pdf-download: JDBC-interviewvragen


1) Wat is de JDBC?

JDBC staat voor Java Database Connectivity. JDBC is een Java API die communiceert met de database en SQLquery uitvoert.


2) Wat is een JDBC-stuurprogramma en hoeveel JDBC-stuurprogramma's zijn er beschikbaar?

Het JDBC-stuurprogramma bevat klassen en interfaces die de Java-applicatie en -database helpen.

Er zijn 4 typen JDBC-stuurprogramma's.

  1. Type 1-stuurprogramma of JDBC-ODBC bridge-stuurprogramma.
  2. Type 2-stuurprogramma of Native-API, gedeeltelijk Java-stuurprogramma.
  3. Type 3-stuurprogramma of netwerkprotocol, puur Java-stuurprogramma.
  4. Type 4-stuurprogramma of Native-protocol, puur Java-stuurprogramma.

3) Hoe kan ik verbinding maken MySQL of Oracle met 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; }

Code uitleg

Class.forName maakt een exemplaar van het JDBC-stuurprogramma en registreert u bij DriverManager.

getConnection()-methode brengt altijd een verbinding met een database tot stand.

We moeten een Statement-object maken van het bovenstaande verbindingsobject. De instructie retourneert het resultet-object. ResultSet.next () betekent dat de resultaatset nog steeds een rij retourneert.


4) Welke JDBC-driver is de snelste driver?

Type 4-stuurprogramma of Native-protocol, puur Java-stuurprogramma, is het snelste stuurprogramma.


5) Wat zijn de JDBC API-componenten?

Er zijn vier soorten componenten

  1. JDBC-API
  2. JDBC-stuurprogrammabeheer
  3. JDBC-testsuite
  4. JDBC-ODBC-brug
JDBC-interviewvragen
JDBC-interviewvragen

6) Wat zijn de JDBC-instructies?

Er zijn 3 soorten JDBC-verklaringen, zoals hieronder weergegeven:

  1. Statement: Het zal worden uitgevoerd SQL query (statische SQL-query) op de database.
  2. Opgestelde verklaring: Wordt gebruikt wanneer we de SQL-instructie herhaaldelijk willen uitvoeren. Invoergegevens zijn dynamisch en worden tijdens de uitvoering ingevoerd.
  3. Opvraagbare verklaring: Wordt gebruikt wanneer we opgeslagen procedures willen uitvoeren.

7) Hoe kunnen we opgeslagen procedures uitvoeren?

Opgeslagen procedures kunnen worden uitgevoerd met behulp van de JDBCcallable-instructie. Hier is de code.

Connection conn = null;

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

callStmt.setString(1, "abcdefg");


8) Wat zijn de voordelen van het gebruik van PreparedStatement in Java?

Prepared Statement wordt gebruikt om dezelfde SQL-instructies herhaaldelijk uit te voeren. De voorbereide verklaring wordt slechts één keer samengesteld, ook al wordt er “n” aantal keren gebruikt


9) Wat is ResultSet?

De java.sql.ResultSet-interface betekent de resultatenset van een SQL-query. Het betekent dat een cursor naar een rij van een tabel wijst; het wijst naar vóór de eerste rij.


10) Wat zijn soorten ResultSets?

Er zijn drie soorten ResultSets beschikbaar. Als we geen ResultSet declareren, betekent dit dat we TYPE_FORWARD_ONLY aanroepen

  1. TYPE_FORWARD_ONLY: cursor kan alleen vooruit bewegen.
  2. TYPE_SCROLL_INSENSITIVE: cursor kan vooruit en achteruit bewegen, maar is niet gevoelig.
  3. TYPE_SCROLL_SENSITIVE: cursor kan vooruit en achteruit bewegen, maar is gevoelig

11) Leg het verschil uit tussen RowSet en ResultSet in JDBC?

Bij een ResultSet-handleverbinding met een DB kunnen we Result niet als een geserialiseerd object maken.

Vanwege het bovenstaande probleem kunnen we Resultset niet via het netwerk doorgeven.

RowSet breidt de ResultSet-interface uit, zodat deze alle methoden van ResultSet bevat. RowSet is geserialiseerd.

We kunnen Rowset dus van de ene klasse naar de andere klasse doorgeven omdat deze geen verbinding heeft met de database.


12) Waarom zou je setAutoCommit(false) gebruiken in JDBC?

Als u Auto Commit wilt uitschakelen, stelt u connection.setAutoCommit(false) in


13) Wat zijn databasewaarschuwingen in JDBC en hoe kunnen we omgaan met databasewaarschuwingen in JDBC?

SQL-waarschuwing of databasewaarschuwing is de subklasse van de klasse SQLException. We kunnen dit afhandelen door de methode getWarnings() te gebruiken voor Connection, Statement en ResultSet


14) Kan ik een nul ResultSet krijgen?

Nee, we kunnen geen nulresultatenset krijgen. ResultSet.next() kan null retourneren als de volgende record geen rij bevat.


15) Wat bedoel je met metadata en waarom we deze gebruiken?

Metadata betekent gegevens of informatie over andere gegevens. We gebruiken metagegevens om de productversie van de database, de naam van het stuurprogramma en het totale aantal tabellen en weergaven te achterhalen.


16) Wat is het verschil tussen uitvoeren, executeQuery en executeUpdate in JDBC?

execute(): het kan worden gebruikt voor elk soort SQL-query.

executeQuery() : het kan worden gebruikt voor een selectiequery.

executeUpdate(): het kan worden gebruikt om de tabel te wijzigen/bij te werken.


17) Wat is het poolen van databaseverbindingen? Voordelen van het gebruik van een verbindingspool?

Verbindingspooling betekent dat verbindingen in de cache worden opgeslagen en dat we ze in de toekomst kunnen hergebruiken.

Voordeel:

  1.  Het is sneller
  2.  Het poolen van verbindingen wordt eenvoudiger bij het diagnosticeren en analyseren van databaseverbindingen.

18) Wat is de functie van de klasse DriverManager?

Het is een interface tussen gebruiker en chauffeurs. DriverManager houdt alle activiteiten tussen een database en de juiste driver bij.


19) Wat is de betekenis van batchupdates?

Batchupdates betekent dat een set/groep SQL-query's in één keer wordt uitgevoerd.

Batchupdates kunnen alleen worden gebruikt voor invoegen, bijwerken en verwijderen, maar niet voor selectiequery's.


20) Hoeveel pakketten zijn er beschikbaar in de JDBC API?

Er zijn twee soorten pakketten beschikbaar in de JDBC API

  1. java.sql
  2. javax.sql

21) Wat is het retourtype van execute, executeQuery en executeUpdate?

Het retourneringstype van de uitvoering is Booleaans

Het retourneringstype van executeQuery is het ResultSet-object

Het retourneringstype van executeUpdate is int


22) Index van de resultatenset Begint met 0 of 1?

De index van de resultatenset begint met 1.


23) Wat is de rol van Class.forName bij het laden van stuurprogramma's?

Class.forName maakt een exemplaar van het JDBC-stuurprogramma en registreert u bij DriverManager.


24) JDBC-ODBC Bridge is multi-threaded of niet?

Nee, JDBC-ODBC Bridge gebruikt gesynchroniseerde methoden om alle oproepen naar ODBC te serialiseren.


25) Welke interface verzorgt het transactiebeheer in JDBC?

De verbindingsinterface verzorgt het transactiebeheer in JDBC. Het biedt een methode voor commit (), rollback () enz.


26) Waarom treedt de fout “Geen geschikt stuurprogramma” op?

Geen geschikt stuurprogramma” treedt op wanneer we de DriverManager.getConnection-methode aanroepen,

het kan de volgende redenen hebben:

  • kan de exacte JDBC-stuurprogramma's niet laden voordat de getConnection-methode wordt aangeroepen.
  • Het kan een ongeldige of verkeerde JDBC-URL zijn.

27) Opgestelde verklaringen zijn sneller. Waarom?

De voorbereide uitvoering van instructies is sneller dan directe uitvoering, omdat de instructie slechts één keer wordt gecompileerd. Opgestelde instructies en JDBC-driver zijn tijdens de uitvoering met elkaar verbonden en er zijn geen verbindingsoverheads.


28) Is het mogelijk om verbinding te maken met meerdere databases? Kunnen we met behulp van een enkele verklaring gegevens uit twee, drie of veel databases bijwerken of extraheren?

Ja, het is mogelijk om tegelijkertijd verbinding te maken met meerdere databases, maar dit is afhankelijk van het specifieke stuurprogramma.

Om gegevens uit de verschillende databases bij te werken en te extraheren, kunnen we de enkele instructie gebruiken. Maar we hebben middleware nodig om met meerdere databases of met één database om te gaan.


29) Vertel mij het verschil tussen setMaxRows(int) en SetFetchSize(int)?

setMaxRijen(int) SetFetchSize(int)?
Definieert hoeveel rijen een resultatenset tegelijk kan bevatten Definieert het aantal rijen dat uit de database wordt gelezen.

30) Vertel me over speciale karakters?

Een speciaal teken wordt voorafgegaan door een escape-teken. Voorbeeld -

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

31) Wat is de betekenis van “vies lezen” in de database?

Vies lezen betekent "lees de waarde die mogelijk correct of mogelijk niet correct is."


32) Wat bedoel je met commits in twee fasen?

Tweefasige commit wordt gebruikt in het gedistribueerde transactieproces. Als er een transactie wordt uitgevoerd, heeft dit invloed op meerdere databases. Er zullen twee fase commits worden gebruikt om alle databases met elkaar te synchroniseren.


33) Hoeveel sluitsystemen zijn er in JDBC?

Er zijn twee soorten vergrendelingen beschikbaar in JDBC, waarmee we meer dan één gebruiker kunnen verwerken.

Als twee gebruikers dezelfde record bekijken, vindt er geen vergrendeling plaats. Als één gebruiker een record bijwerkt en de tweede gebruiker hetzelfde record ook bijwerkt. Op dat moment gaan we vergrendeling gebruiken.

  1. Optimistische vergrendeling: het zal de record alleen vergrendelen als we gaan ‘bijwerken’.
  2. Pessimistische vergrendeling: het vergrendelt de record van de “select” om tijd te bekijken, bij te werken en vast te leggen.

34) Wat zijn de uitzonderingen in JDBC?

Er zijn vier soorten uitzonderingen in JDBC.

  1. batchUpdate-uitzondering
  2. Gegevensafkapping
  3. SQL-uitzondering
  4. SQL-waarschuwing

35) Geef stappen om verbinding te maken met de database met behulp van JDBC?

Er zijn twee manieren om de database te verbinden met behulp van JDBC

  1. DriverManager gebruiken:

Het laadt de stuurprogrammaklasse met behulp van class.forName(stuurprogrammaklasse) en Class.forName().

Na het laden wordt de controle doorgegeven aan DriverManager.

DriverManager.getConnection() zal de verbinding tot stand brengen om toegang te krijgen tot de database.

  1. Gegevensbron gebruiken:

Voor DataSource hoeft u DriverManager niet te gebruiken met behulp van JNDI. Het zoekt de gegevensbron op van de naamgevingsserviceserver. De methode DataSource.getConnection() retourneert het Connection-object naar de database.


36) Leg de JDBC-architectuur uit?

JDBC API ondersteunt zowel 2-tier- als 3-tier-modellen voor de database.

In het 2-tier-model communiceert de Java-applicatie met de gegevensbron

In het 3-tier-model worden opdrachten omgeleid naar een “middenlaag” van services. Daarna worden opdrachten naar de gegevensbron verzonden.


37) Wat zijn de nieuwe functies die beschikbaar zijn in JDBC 4.0?

De nieuwe functies zijn:

  • Automatisch laden per JDBC-stuurprogrammaklasse
  • Verbeterd verbindingsbeheer
  • RowId SQL ingeschakeld
  • Gegevensset geïmplementeerd door SQL met behulp van annotaties
  • Verbeteringen in de afhandeling van SQL-uitzonderingen
  • Ondersteunende SQL XML bestanden

38) Welke pakketten worden er in JDBC gebruikt?

Er worden 8 pakketten gebruikt in JDBC –

  1. sql.stuurprogramma
  2. Aansluiting
  3. Statement
  4. Voorbereidverklaring
  5. Oproepbare verklaring
  6. Resultaatset
  7. ResultaatSetMetaData
  8. DatabaseMetaData

39) Hoeveel RowSets zijn er beschikbaar in JDBC?

Er zijn twee soorten rijsets beschikbaar:

  1. aangesloten – Een verbonden RowSet-object maakt onmiddellijk verbinding met de database. Als de toepassing wordt beëindigd, wordt het verbonden RowSet-object ook beëindigd.
  2. Losgekoppeld – Een niet-verbonden RowSet-object maakt verbinding met de database na uitvoering van de vereiste query.

40) Wat is de betekenis van verbinding?

De verbindingsinterface bestaat uit methoden voor interactie met de database.


41) Leg JDBC Savepoint uit?

Een savepoint vertegenwoordigt een punt waarnaar de huidige transactie kan worden teruggedraaid. In plaats van al zijn wijzigingen terug te draaien, kan hij ervoor kiezen om slechts enkele ervan terug te draaien.


42) Noem de voordelen van het gebruik van DataSource?

Gegevensbron verdeelt het werk tussen beheerder en programmeur/ontwikkelaar.

De beheerder maakt een DataSource-object en koppelt dit aan het JNDI-register. Een programmeur/ontwikkelaar haalt het DataSource-object op uit het register. Vervolgens wordt de verbinding met de database tot stand gebracht.


43) Wat is de reden waarom we een JdbcRowSet nodig hebben zoals de wrapper rond ResultSet?

We kunnen het ResultSet-object gebruiken als een JavaBeans-component.

  • Een JdbcRowSet kan ook worden gebruikt als een JavaBeans-component. Daarom kan het tijdens ontwerp- of compilatietijd worden gemaakt en geconfigureerd en tijdens runtime worden uitgevoerd.
  • Alle jdbcRowSet-objecten zijn schuifbaar en kunnen worden bijgewerkt.

44) Op hoeveel manieren kunnen we een resultatenset bekijken?

Er zijn 2 manieren om ResultSet te bekijken

  1. kolom
  2. kolomindex.

Voorbeeld: getInt(String columnName), getInt(int columnIndex)


45) Op hoeveel manieren kunt u een resultatenset bijwerken?

Met de volgende methoden kunt u de resultatenset bijwerken

  • updateRij()
  • Verwijder rij()
  • verversRij()
  • cancelRowUpdates()
  • invoegenRij()

46) Waarom moeten we databaseverbindingen in Java sluiten?

Als best practice moeten we de resultatenset, de verklaring en de verbinding sluiten. Als de verbinding afkomstig is van een pool, wordt de verbinding bij sluiting teruggestuurd naar de pool voor hergebruik. We doen dit in het blok final{}, want als er een uitzondering optreedt, krijgen we nog steeds de kans om dit te sluiten.


47) Waarom gebruiken we blob-gegevenstypen in JDBC?

Deze worden gebruikt om een ​​grote hoeveelheid gegevens in de database op te slaan, zoals afbeeldingen, films, enz.


48) Hoe stel ik het attribuut Concurrency in ResultSet in?

Er zijn twee gelijktijdigheidsniveaus

  1. CONCUR_READ_ONLY – Het is alleen bedoeld om te lezen.
  2. CONCUR_UPDATABLE − Het is voor zowel lezen als bijwerken.

49) Wat is het verschil tussen client- en serverdatabasecursors?

Cursor aan de serverzijde betekent dat gegevens en resultaten op de server worden opgeslagen. Alleen wanneer gevraagde gegevens naar de klant worden verzonden.

Cursor aan de clientzijde betekent alle gegevens die naar de clientlocatie worden verzonden.


50) Hoe voegt u afbeeldingen in de database in met behulp van JDBC?

Afbeeldingen in de database met behulp van het BLOB-gegevenstype waarin de afbeelding is opgeslagen als een bytestroom. Onderstaande code laat zien hoe u de afbeelding in DB kunt invoegen.

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

Deze interviewvragen zullen ook helpen bij je viva (oralen)

Delen

2 reacties

Laat een reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd *