top 25 jdbc interview questions
Denna handledning ger vanliga JDBC-intervjufrågor och svar med förklaringar som hjälper dig att förbereda dig för intervjun:
I JDBC batchbehandling och lagrad procedur handledning av JDBC-handledningsserie , vi lärde oss metoder för att göra batchbehandling i Java med JDBC-drivrutin och lärde oss också att skapa lagrade procedurer och anropa det från ett Java-program.
JDBC är den vanliga kortformen för Java Database Connectivity. Genom att använda JDBC kan vi interagera med olika typer av relationsdatabaser som Oracle, MySQL, MS Access, etc.
Den här artikeln hjälper dig att knäcka JDBC-intervjun. Vi har här förklarat alla viktiga JDBC-koncept.
Vanliga frågor om JDBC-intervju
F # 1) Vad är JDBC?
Svar: Java Database Connectivity är inofficiellt känt som JDBC. Den används för att utföra DB-operationer i databasen från Java-applikationen. Den stöder interaktion med alla typer av DB som Oracle, MySQL, MS Access, etc.
F # 2) Vad använder JDBC-drivrutinen?
Svar: Det är en programvarukomponent och används för att få Java-applikationen att interagera med databasen.
F # 3) Vilka är de olika typerna av drivrutiner i JDBC?
Svar: Det finns 4 olika JDBC-drivrutiner där ute på marknaden.
Dom är:
- Typ I: JDBC - ODBC Bridge
- Typ II: Native API - Half Java Driver
- Typ III: Nätverksprotokoll - helt Java-drivrutin
- Typ IV: Tunn förare - helt Java-drivrutin
Typ I: JDBC-ODBC Bridge
JDBC-ODBC bridge kommer att fungera som ett gränssnitt mellan klienten och DB-servern. Klienten bör placera JDBC-ODBC-drivrutinen i den. Databasen borde stödja ODBC-drivrutinen. Om vi inte är oroliga för drivrutinsinstallationen i klientsystemet använder vi den här drivrutinen.
Typ II: Native API: Half Java Driver
Det är nästan som en JDBC-ODBC-drivrutin. I stället för en ODBC-drivrutin använder vi här native API. Bibliotek för klientsidan används.
Typ III: Nätverksprotokoll
Det fungerar som en 3-stegs metod för att komma åt databasen. En mellanliggande server kommer att användas för att ansluta till DB. JDBC-metodsamtal skickar data till en mellanliggande server då kommunicerar servern med DB.
Typ IV: tunn förare
Det är absolut skrivet på Java. Det konverterar uttryckligen JDBC-metodanrop till det leverantörsspecifika databasprotokollet. Nuförtiden tillhandahåller databashandlaren själv denna typ av drivrutin för sina kunder. Så programmerare litar inte på andra källor. Det ger högre prestanda än de andra förarna.
F # 4) Vilken typ av JDBC-drivrutin används av de flesta?
Svar: Typ IV tunn drivrutin används i de flesta applikationer. Den är utvecklad av databasleverantören själv så att utvecklarna kan använda den direkt utan att bero på andra källor. Det möjliggör enkel och enkel utveckling. Det ger högre prestanda än de andra förarna.
F # 5) Vilka är de olika typerna av JDBC-arkitektur?
Svar: JDBC stöder två typer av bearbetningsmodeller för att komma åt DB.
Dom är:
- Tvådelad arkitektur: Här ansluter Java-program uttryckligen till DB. Vi behöver ingen medlare som applikationsserver för att ansluta till DB förutom JDBC-drivrutinen. Det är också känt som en klient-server-arkitektur.
- Tre-lags arkitektur: Det är helt omvänd av två-stegs arkitektur. Det kommer inte att finnas någon uttrycklig kommunikation mellan JDBC-drivrutinen eller Java-programmet och databasen. En applikationsserver används som medlare mellan dem. Java-programmet skickar begäran till en applikationsserver, och servern skickar den och tar emot svaret till / från DB.
F # 6) Vilka är komponenterna i JDBC?
Svar: Det finns fyra huvudkomponenter som finns tillgängliga i JDBC.
Dom är:
- JDBC API
- JDBC Driver Manager
- JDBC Test Suite
- JDBC - ODBC Bridge
F # 7) Vilka är stegen för att ansluta till JDBC?
Svar: Det finns sex grundläggande steg för att ansluta till DB i Java. Dessa listas nedan:
- Importera paket
- Lastförare
- Upprätta anslutning
- Skapande och genomförande av uttalandet
- Hämta resultat
- Stäng anslutningen
F # 8) Vilka datatyper används för att lagra bilden och filen i databastabellen?
Svar:
- BLOB-datatyp används för att lagra bilden i DB. Vi kan också lagra videor och ljud i BLOB-datatypen. Den används för att lagra den binära typen av data.
- CLOB datatyp används för att lagra filen i DB. Den används för att lagra karaktärstypen data.
F # 9) Vad är DriverManager i JDBC?
Svar: DriverManager är en inbyggd klass som finns i paketet java.sql. Den kommer att användas som en medlare mellan Java-applikationen och DB, som vi ansluter / använder i vår kod. Som ett första steg måste vi registrera eller ladda drivrutinen med DriverManager. Då kommer föraren att vara tillgänglig för applikationen.
DriverManagers huvudfunktion är att ladda förarklassen i databasen och skapa en anslutning med DB.
Det finns två sätt att registrera eller ladda drivrutinen:
- Class.forName ()
- DriverManager.registerDriver ()
F # 10) Vad är skillnaden mellan gränssnitt Statement och PreparedStatement.
Svar: Nedanstående tabell förklarar skillnaderna:
PÅSTÅENDE | FÖRBERETT UTTALANDE |
---|---|
Den kommer huvudsakligen att användas för att köra statiska SQL-uttalanden | Den kommer huvudsakligen att användas för att köra förkompilerade SQL-satser |
Det accepterar inte parametrar vid körning | Det accepterar olika parametrar vid körning |
Dess prestanda är mindre jämfört med prepareradStatement | Dess prestanda är högre än Statement eftersom den kör de förkompilerade SQL-uttalandena |
Det är lämpligt för körning av DDL-uttalanden som CREATE, DROP, ALTER och TRUNCATE | Det är lämpligt för körning av DML-uttalanden som INSERT, UPDATE och DELETE |
Den kan inte användas för att lagra eller hämta bild och fil i DB | Den kan användas för att lagra eller hämta bild och fil i DB |
Det verkställer SQL Injection | Det förhindrar SQL-injektion |
Föreslagen läsning = >> JDBC PreparedStatement and Statement
F # 11) Förklara skillnaden mellan execute (), executeQuery () och executeUpdate ().
Svar:
executeQuery () | executeUpdate () | Kör() |
---|---|---|
Den används för att köra SQL-uttalanden som hämtar en del data från DB | Den används för att köra SQL-uttalanden som kommer att uppdatera eller modifiera data i DB | Den används för att utföra alla typer av SQL-uttalanden |
Det returnerar resultSet-objektet | Det returnerar ett heltal som representerar nej. av berörda rader | Det returnerar ett booleskt värde TRUE - returnerar ett resultSet-objekt FALSE - returnerar ett int-värde eller ingenting |
Den används för att endast utföra SELECT Query | Den används för att exekvera en fråga som inte är SELECT | Den används för att utföra både SELECT- och non-SELECT-frågor |
F # 12) Hur man ringer lagrade procedurer i JDBC?
Svar: Vi kan utföra SQL Stored-procedurer via CallableStatement-gränssnittet. CallableStatement-objektet kan skapas med hjälp av preparatCall () -metoden i anslutningsgränssnittet.
F # 13) Vad är ResultSet-gränssnittet?
Svar: ResultSet-gränssnittet används för att lagra utdata efter SQL-frågan körning. Objektet för ResultSet behåller markörpunkten vid resultatdata. Som standard pekar markören före den första raden med resultatdata. Vi kan också korsa data i resultatobjekten.
bredd första sökning c ++ träd
Syntax:
Uttalande gränssnitt:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
PreparedStatement-gränssnitt:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
F # 14) Vilka är typerna av ResultSet?
Svar: Det finns tre typer i ResultSet. Dessa är:
vad är det bästa programmet för borttagning av skadlig programvara
- TYPE_FORWARD_ONLY: Det är standardalternativet. Markören flyttas från start till slut.
- TYPE_SCROLL_INSENSITIVE: I den här typen rör sig markören både framåt och bakåt. Dataset har data när SQL-frågan returnerar data.
- TYPE_SCROLL_SENSITIVE: Det är detsamma som TYPE_SCROLL_INSENSITIVE, skillnaden är att den kommer att ha de uppdaterade data medan den upprepar resultatuppsättningsobjektet.
F # 15) Vilka är samtidiga lägen i ResultSet?
Svar: Det finns två olika lägen för samtidighet i ResultSet. Dom är:
- ResultSet.CONCUR_READ_ONLY : Det är standardläget för samtidighet. Ett skrivskyddat alternativ är tillgängligt. Uppdatering är inte möjlig.
- ResultSet.CONCUR_UPDATABLE: Uppdatering är möjlig.
F # 16) Hur kontrollerar jag om databasen stöder samtidighetsläget?
Svar: Vi har supportsResultSetConcurrency () -metoden som kommer att användas för att kontrollera om den givna typen och samtidighetslägen stöds av databasen eller inte.
F # 17) Kan vi hämta data för den specifika raden från resultatuppsättningen?
Notera: ResultSet har data för en rad rader
Svar: Ja, vi kan hämta data för den specifika raden från resultSet med metoden relativ (). Den flyttar markören till den angivna raden antingen framåt eller bakåt från den aktuella raden. Om det positiva värdet har givits rör sig det framåt. Om det negativa värdet har givits kommer det att röra sig bakåt.
F # 18) Vad är användningen av getter- och settermetoderna i ResultSet?
Svar:
Getter-metoder: Dessa används för att hämta värdena för den specifika kolumnen i tabellen från ResultSet. Antingen ska kolumnindexvärdet eller kolumnnamnet skickas som en parameter. Normalt representerar vi gettermetoden som getXXX () -metoder.
Exempel:
- int getInt (string Column_Name): Den används för att hämta värdet för den angivna kolumnen Index och int-datatyp som en returtyp.
Settermetoder: Vi kan ställa in värdet i databasen med hjälp av ResultSet setter-metoder. Det liknar gettermetoder, men här måste vi skicka värden / data för den specifika kolumnen för att infoga i databasen och indexvärdet eller kolumnnamnet för den kolumnen. Normalt representerar vi settermetoden som setXXX () -metoder.
Exempel:
- ogiltig setInt (int Column_Index, int Data_Value): Den används för att infoga värdet för den angivna kolumnen Index med ett int-värde.
F # 19) Vad är huvudsyftet med ResultSetMetaData-gränssnittet?
Svar: Detta gränssnitt ger mer information om ResultSet. Varje ResultatSet-objekt har associerats med ett ResultSetMetaData-objekt.
Detta objekt kommer att ha detaljer om egenskaperna för kolumnerna som datatyp för kolumnen, kolumnnamn, antalet kolumner i den tabellen, tabellnamn, schemanamn, etc., metoden getMetaData () för ResultSet-objekt används för att skapa ResultatSetMetaData-objekt.
Syntax:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
F # 20) Vad är DatabaseMetaData?
Svar: DatabaseMetaData-gränssnittet ger information om den databas vi använder. Vi får följande information - Databasnamn, databasversion och så vidare.
F # 21) Vad är ACID-egenskap?
Svar:
- A – Atomicitet -> Om alla frågor har genomförts framgångsrikt kommer uppgifterna att begås annars kommer inte att begå.
- C – Konsistens -> Uppgifterna ska vara konsekventa efter varje transaktion.
- I – Isolation -> Varje transaktion ska isoleras.
- D – hållbarhet -> Om transaktionen görs en gång ska den alltid vara tillgänglig (om inga ändringar har hänt)
F # 22) Hur ändrar du värdet för auto-commit-läge?
Svar: Som standard är värdet för AutoCommit SANT. Efter körningen av SQL-uttalandet kommer det att göras automatiskt. Med metoden setAutoCommit () kan vi ändra värdet till AutoCommit.
F # 23) Vad är användningen av Commit and Rollback-metoder?
Svar:
Commit () -metod: Vi har metoden commit () i Java för att begå data. När SQL-körningen är klar kan vi anropa commit-metoden.
Syntax: connectionobj.commit ();
Rollback () -metod: Vi har rollback () -metoden i Java för att återställa data. Återställning innebär att ångra ändringarna. Om något av SQL-uttalandena misslyckas kan vi ringa återställningsmetoden för att ångra ändringarna.
Syntax: connectionobj.rollback ();
F # 24) Vad är savepoint och vilka metoder har vi i JDBC för savepoint?
Svar: Savepoint används för att skapa kontrollpunkter i en transaktion, och det gör att vi kan utföra en återställning till den specifika sparpunkten. När transaktionen har begåtts eller rullats tillbaka kommer den sparpunkt som har skapats för en transaktion att förstöras automatiskt och blir ogiltig.
Metoder för Savepoint:
- setSavepoint () metod: Den används för att skapa Savepoint, vi kan använda rollback () -metoden för att ångra alla ändringar till sparpunkten.
- releaseSavepoint () -metod: Den används för att ta bort den givna sparpunkten.
F # 25) Lista några undantag som faller under SQLException?
Svar:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Klicka här för mer information om ovanstående undantag.
F # 26) Vad är batchbehandling och hur man gör det i JDBC?
Svar: Batchbehandling är processen att köra flera SQL-satser i en transaktion. Om du gör det minskar kommunikationstiden och ökar prestandan. Det underlättar behandlingen av en stor mängd data.
Fördelar med batchbehandling:
- Förbättra prestanda
- Datakonsistens
Så här utför du batchbehandling:
Vi har addBatch () och executeBatch () -metoder i Java för att utföra batchbehandling. Dessa två metoder finns i klasserna Statement och PreparedStatement.
F # 27) Vad är den lagrade proceduren?
Svar: En grupp SQL-frågor som körs som en enda enhet för att utföra en viss uppgift kallas en lagrad procedur. Vi kan skicka 3 olika typer av parametrar. Varje procedur representeras av dess namn. Så namnet på proceduren ska vara unikt.
>> Mer information om den lagrade proceduren finns i detta länk .
F # 28) Vilka är parametertyperna i lagrade procedurer?
Svar: Det finns tre typer av parametrar tillgängliga i lagrade procedurer. Dom är:
- I: Används för att skicka inmatningsvärdena till proceduren.
- UT: Används för att få värdet från proceduren.
- IN UT: Används för att skicka inmatningsvärdena och få värdet till / från proceduren.
Slutsats
Det här är några JDBC-intervjufrågor som täcker både grundnivå och avancerad nivå. Vi hoppas att den här guiden ger dig en översikt över JDBC. Förklaringarna som ges ovan kommer att berika din kunskap och öka din förståelse för JDBC. Med vänliga hälsningar!!!
Rekommenderad läsning
- Java JDBC-anslutningshandledning med programmeringsexempel
- Java JDBC-transaktionshantering med exempel
- Java JDBC-handledning: Vad är JDBC (Java Database Connectivity)
- JDBC ResultSet: Hur man använder Java ResultSet för att hämta data
- Intervjufrågor och svar
- 25 bästa intervjuer och svar på Agile Testing
- ETL Testing Intervju Frågor och svar
- Topp 25 Java Web Services Intervju Frågor och svar