Topp 50 JDBC-intervjuspørsmål og -svar (2025)

Her er Java Database Connectivity (JDBC) intervjuspørsmål og svar for ferskere så vel som erfarne kandidater for å få drømmejobben.

Gratis PDF-nedlasting: JDBC-intervjuspørsmål


1) Hva er JDBC?

JDBC står for Java Database Connectivity. JDBC er et Java API som kommuniserer med databasen og utfører SQLquery.


2) Hva er en JDBC-driver og hvor mange JDBC-drivere er tilgjengelige?

JDBC-driveren inneholder klasser og grensesnitt som hjelper Java-applikasjon og database.

Det er 4 typer JDBC-drivere.

  1. Type 1-driver eller JDBC-ODBC-brodriver.
  2. Type 2-driver eller Native-API, delvis Java-driver.
  3. Type 3-driver eller Network Protocol, ren Java-driver.
  4. Type 4-driver eller Native-protocol, ren Java-driver.

3) Hvordan kan jeg koble til MySQL eller Oracle med 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; }

Kode forklaring

Class.forName oppretter en forekomst av JDBC-driver og registrerer deg hos DriverManager.

getConnection () metoden etablerer alltid en tilkobling til en database.

Vi må opprette et Statement-objekt fra connection-objektet ovenfor. Setningen vil returnere resultset-objektet. ResultSet.next() betyr om resultatsettet fortsatt returnerer en rad.


4) Hvilken JDBC-sjåfør er den raskeste sjåføren?

Type 4-driver eller Native-protocol, ren Java-driver, er den raskeste driveren.


5) Hva er JDBC API-komponentene?

Det er fire typer komponenter

  1. JDBC API
  2. JDBC Driver Manager
  3. JDBC Test Suite
  4. JDBC-ODBC-broen
JDBC-intervjuspørsmål
JDBC-intervjuspørsmål

6) Hva er JDBC-utsagnene?

Det er 3 typer JDBC-uttalelser, som gitt nedenfor:

  1. UttalelseDen vil utføre SQL spørring (statisk SQL-spørring) mot databasen.
  2. Utarbeidet uttalelse: Brukes når vi ønsker å kjøre en SQL-setning gjentatte ganger. Inndataene er dynamiske og tas inn under kjøretid.
  3. Ringbar erklæring: Brukes når vi ønsker å utføre lagrede prosedyrer.

7) Hvordan kan vi utføre lagrede prosedyrer?

Lagrede prosedyrer kan utføres ved å bruke JDBCcallable-setningen. Her er koden.

Connection conn = null;

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

callStmt.setString(1, "abcdefg");


8) Hva er fordelene med å bruke PreparedStatement i Java?

Prepared Statement brukes til å utføre de samme SQL-setningene gjentatte ganger. Den forberedte setningen kompileres bare én gang, selv om den brukte "n" antall ganger


9) Hva er ResultSet?

Java.sql.ResultSet-grensesnittet betyr resultatsettet av en SQL-spørring. Det betyr at en markør peker på en rad i en tabell; den peker på før første rad.


10) Hva er typer resultatsett?

Det er tre typer ResultSet er tilgjengelig. Hvis vi ikke erklærer noe resultatsett betyr det at vi ringer TYPE_FORWARD_ONLY

  1. TYPE_FORWARD_ONLY: markøren kan bare flyttes fremover.
  2. TYPE_SCROLL_INSENSITIVE: markøren kan bevege seg fremover og bakover, men ikke følsom.
  3. TYPE_SCROLL_SENSITIVE: markøren kan bevege seg fremover og bakover, men den er følsom

11) Forklar forskjellen mellom RowSet vs. ResultSet i JDBC?

I en ResultSet-håndtaksforbindelse til en DB kan vi ikke lage Result som et serialisert objekt.

På grunn av problemet ovenfor kan vi ikke sende Resultset over nettverket.

RowSet utvider ResultSet-grensesnittet, slik at det inneholder alle metoder fra ResultSet. RowSet er serialisert.

Så vi kan sende Rowset fra en klasse til en annen klasse fordi den ikke har noen forbindelse med databasen.


12) Hvorfor ville du bruke setAutoCommit(false) i JDBC?

Hvis du vil slå av Auto Commit, må du angi connection.setAutoCommit(false)


13) Hva er databaseadvarsler i JDBC og hvordan kan vi håndtere databaseadvarsler i JDBC?

SQL-advarsel eller Database-advarsel er underklassen til SQLException-klassen. Vi kan håndtere det ved å bruke getWarnings()-metoden på Connection, Statement og ResultSet


14) Kan jeg få et null ResultSet?

Nei, vi kan ikke få null resultatsett. ResultSet.next() kan returnere null hvis neste post ikke inneholder en rad.


15) Hva mener du med Metadata og hvorfor bruker vi det?

Metadata betyr data eller informasjon om andre data. Vi bruker metadata for å få databaseproduktversjon, drivernavn, totalt antall tabeller og visninger.


16) Hva er forskjellen mellom å utføre, executeQuery, executeUpdate i JDBC?

execute(): den kan brukes til alle slags SQL-spørringer.

executeQuery(): den kan brukes for utvalgt spørring.

executeUpdate(): den kan brukes til å endre/oppdatere tabell.


17) Hva er databasetilkoblingspooling? Fordeler med å bruke et tilkoblingsbasseng?

Tilkoblingspooling betyr at tilkoblinger vil bli lagret i hurtigbufferen, og vi kan gjenbruke dem i fremtiden.

Fordel:

  1. Det går raskere
  2. Tilkoblingspooling blir enklere å diagnostisere og analysere databasetilkobling.

18) Hva er funksjonen til DriverManager-klassen?

Det er et grensesnitt mellom bruker og drivere. DriverManager sporer all aktivitet mellom en database og den aktuelle driveren.


19) Hva er meningen med batchoppdateringer?

Batchoppdateringer betyr å utføre et sett/gruppe med SQL-spørringer på en gang.

Batchoppdateringer kan bare brukes til å sette inn, oppdatere og slette, men ikke for utvalgte søk.


20) Hvor mange pakker er tilgjengelige i JDBC API?

To typer pakker er tilgjengelige i JDBC API

  1. java.sql
  2. javax.sql

21) Hva er returtypen for execute, executeQuery og executeUpdate?

Returtypen for utførelse er boolsk

Returtypen for executeQuery er ResultSet-objektet

Returtype for executeUpdate er int


22) Resultatsettets indeks Starter med 0 eller 1?

Resultatsettets indeks starter med 1.


23) Hva er rollen til Class.forName når du laster drivere?

Class.forName oppretter en forekomst av JDBC-driver og registrerer deg hos DriverManager.


24) JDBC-ODBC Bridge er flertrådet eller ikke?

Nei, JDBC-ODBC Bridge bruker synkroniserte metoder for å serialisere alle anropene til ODBC.


25) Hvilket grensesnitt håndterer transaksjonshåndtering i JDBC?

Tilkoblingsgrensesnitt håndterer transaksjonshåndtering i JDBC. Det gir metode for commit (), rollback () osv.


26) Hvorfor oppstår "Ingen passende driver"-feil?

Ingen passende driver" oppstår når vi kaller DriverManager.getConnection-metoden,

det kan oppstå på grunn av følgende årsaker:

  • kan ikke laste inn nøyaktige JDBC-drivere før du kaller getConnection-metoden.
  • Det kan være ugyldig eller feil JDBC URL.

27) Forberedte uttalelser er raskere. Hvorfor?

Forberedt setningskjøring er raskere enn direkte kjøring fordi setningen kun kompileres én gang. Forberedte uttalelser og JDBC-drivere er koblet til hverandre under utførelse, og det er ingen tilkoblingskostnader.


28) Er det mulig å koble til flere databaser? Ved å bruke en enkelt setning kan vi oppdatere eller trekke ut data fra to eller tre eller mange databaser?

Ja, det er mulig å koble til flere databaser samtidig, men det avhenger av den spesifikke driveren.

For å oppdatere og trekke ut data fra de forskjellige databasene kan vi bruke enkeltsetningen. Men vi trenger mellomvare for å håndtere flere databaser eller en enkelt database.


29) Fortell meg forskjellen mellom setMaxRows(int) og SetFetchSize(int)?

setMaxRows(int) SetFetchSize(int)?
Definerer hvor mange rader et resultatsett kan inneholde om gangen Definerer antall rader som skal leses fra databasen.

30) Fortell meg om spesialkarakterer?

Et spesialtegn innledes med et escape-tegn. Eksempel –

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

31) Hva er meningen med "skitten lesning" i databasen?

Skitten lesing betyr "les verdien som kan være riktig eller kanskje ikke riktig."


32) Hva mener du med tofase-forpliktelser?

To-fase commit brukes i distribuert transaksjonsprosess. Hvis en transaksjon utføres og det vil påvirke flere databaser. To fase commits vil bli brukt for å gjøre alle databaser synkronisert med hverandre.


33) Hvor mange låsesystemer er det i JDBC?

To typer låser er tilgjengelige i JDBC som vi kan håndtere mer enn én bruker.

Hvis to brukere ser på den samme posten, utføres ingen låsing. Hvis én bruker oppdaterer en post og den andre brukeren også oppdaterer den samme posten, skal vi da bruke låsing.

  1. Optimistisk låsing: den låser posten bare når vi skal "oppdatere."
  2. Pessimistisk låsing: det vil låse posten fra "velg" for å se, oppdatere og forplikte tid.

34) Hva er unntakene i JDBC?

Det er fire typer unntak i JDBC.

  1. batchUpdate-unntak
  2. Dataavkorting
  3. SQL-unntak
  4. SQL-advarsel

35) Gi trinn for å koble til DB ved hjelp av JDBC?

Det er to måter å koble til databasen ved hjelp av JDBC

  1. Bruke DriverManager:

Den vil laste sjåførklassen ved hjelp av class.forName(driver class) og Class.forName().

Etter lasting vil kontrollen overføres til DriverManager.

DriverManager.getConnection() vil opprette tilkoblingen for å få tilgang til databasen.

  1. Bruke datakilde:

For DataSource trenger du ikke å bruke DriverManager ved hjelp av JNDI. Den vil slå opp DataSource fra navngivningstjenesteserveren. DataSource.getConnection()-metoden returnerer Connection-objektet til databasen.


36) Forklar JDBC-arkitekturen?

JDBC API støtter både 2-lags og 3-lags modeller for databasen.

I 2-lags modell samhandler Java-applikasjonen med datakilden

JDBC 2-lags arkitektur

I 3-lags modell blir kommandoer omdirigert til et "mellomlag" av tjenester. Etter det sendes kommandoer til datakilden.

JDBC 3-lags arkitektur


37) Hva er de nye funksjonene som er tilgjengelige i JDBC 4.0?

De nye funksjonene er

  • Automatisk lasting av JDBC-driverklasse
  • Forbedret tilkoblingsadministrasjon
  • RowId SQL aktivert
  • Datasett implementert av SQL ved hjelp av merknader
  • Forbedringer av SQL-unntakshåndtering
  • Støtter SQL XML filer

38) Hva er pakkene som brukes i JDBC?

8 pakker brukes i JDBC -

  1. sql.driver
  2. Tilkobling
  3. Uttalelse
  4. Forberedt uttalelse
  5. CallableStatement
  6. Resultatsett
  7. ResultSetMetaData
  8. DatabaseMetaData

39) Hvor mange RowSet er tilgjengelig i JDBC?

Det er to typer radsett tilgjengelig:

  1. Koblet – Et tilkoblet RowSet-objekt kobles til databasen øyeblikkelig. Hvis applikasjonen avsluttes, avsluttes også tilkoblet RowSet-objekt.
  2. Frakoblet – Et frakoblet RowSet-objekt kobles til databasen etter utførelse av den nødvendige spørringen.

40) Hva er meningen med tilknytning?

Tilkoblingsgrensesnitt består av metoder for interaksjon med databasen.


41) Forklar JDBC Savepoint?

Et lagringspunkt representerer et punkt som gjeldende transaksjon kan rulle tilbake til. I stedet for å rulle tilbake alle endringene, kan den velge å rulle tilbake bare noen av dem.


42) Liste fordelene ved å bruke DataSource?

Datakilden deler arbeidet mellom administrator og programmerer/utvikler.

Administratoren oppretter et DataSource-objekt og kobler det til JNDI-registeret. En programmerer/utvikler henter DataSource-objektet fra registeret. Deretter oppretter den forbindelsen til databasen.


43) Hva er grunnen til at vi trenger et JdbcRowSet som innpakningen rundt ResultSet?

Vi kan bruke ResultSet-objektet som en JavaBeans-komponent.

  • Et JdbcRowSet kan også brukes som en JavaBeans-komponent. Det er derfor det kan opprettes og konfigureres ved design eller kompileringstid og kjøres under kjøretid.
  • Alle jdbcRowSet-objekter kan rulles og oppdateres.

44) Hvor mange måter kan vi se et resultatsett på?

Det er 2 måter å se ResultSet på

  1. kolonne
  2. kolonneindeks.

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


45) Hvor mange måter kan du oppdatere et resultatsett?

Følgende metoder hjelper deg med å oppdatere resultatsettet

  • updateRow()
  • deleteRow()
  • refreshRow()
  • cancelRowUpdates()
  • insertRow()

46) Hvorfor bør vi lukke databaseforbindelser i Java?

Som en beste praksis må vi lukke resultatsettet, uttalelsen og koblingen. Hvis forbindelsen kommer fra et basseng, sendes forbindelsen tilbake til bassenget ved stenging for gjenbruk. Vi gjør dette i den endelige{}-blokken, for hvis et unntak oppstår, har vi fortsatt sjansen til å lukke dette.


47) Hvorfor bruker vi blob-datatyper i JDBC?

Disse brukes til å lagre en stor mengde data i databasen som bilder, film, etc.


48) Hvordan sette attributtet Concurrency i ResultSet?

Det er to samtidighetsnivåer

  1. CONCUR_READ_ONLY – Det er bare for lesing.
  2. CONCUR_UPDATABLE − Det er for både lesing og oppdatering.

49) Hva er forskjellen mellom klient- og serverdatabasepekere?

Markør på serversiden betyr at data og resultater lagres på serveren. Kun når forespurte data sendes til klienten.

Klientsidemarkør betyr all data sendt til klientstedet.


50) Hvordan setter du inn bilder i databasen ved hjelp av JDBC?

Bilder i databasen som bruker BLOB-datatypen der bildet er lagret som en bytestrøm. Koden nedenfor viser hvordan du setter inn bildet i DB.

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

Disse intervjuspørsmålene vil også hjelpe i din viva(orals)

Del

2 Kommentarer

  1. veldig nyttig for studentene………..

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *