Az 50 legjobb JDBC-interjú kérdés és válasz (2025)
Íme a Java Database Connectivity (JDBC) interjúkérdései és válaszai a kezdőknek, valamint a tapasztalt jelölteknek álmaik állása megszerzéséhez.
Ingyenes PDF letöltés: JDBC interjúkérdések
1) Mi az a JDBC?
A JDBC a Java Database Connectivity rövidítése. A JDBC egy Java API, amely kommunikál az adatbázissal és végrehajtja az SQL-lekérdezést.
2) Mi az a JDBC illesztőprogram, és hány JDBC illesztőprogram érhető el?
A JDBC illesztőprogram osztályokat és interfészeket tartalmaz, amelyek segítik a Java alkalmazásokat és adatbázisokat.
4 féle JDBC illesztőprogram létezik.
- 1. típusú illesztőprogram vagy JDBC-ODBC híd-illesztőprogram.
- 2-es típusú illesztőprogram vagy natív-API, részben Java driver.
- 3-as típusú illesztőprogram vagy hálózati protokoll, tiszta Java illesztőprogram.
- 4-es típusú illesztőprogram vagy natív protokoll, tiszta Java illesztőprogram.
3) Hogyan tudok csatlakozni MySQL vagy Oracle Java-val?
//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; }
Kód magyarázata
A Class.forName létrehozza a JDBC illesztőprogram egy példányát, és regisztrál a DriverManager szolgáltatásban.
A getConnection () metódus mindig kapcsolatot létesít egy adatbázissal.
Létre kell hoznunk egy Statement objektumot a fenti kapcsolati objektumból. Az utasítás eredményhalmaz objektumot ad vissza. ResultSet.next () azt jelenti, hogy az eredményhalmaz még mindig visszaadja a sort.
4) Melyik JDBC illesztőprogram a leggyorsabb?
A 4-es típusú illesztőprogram vagy natív protokoll, tiszta Java illesztőprogram a leggyorsabb illesztőprogram.
5) Melyek a JDBC API összetevői?
Négyféle komponens létezik
- JDBC API
- JDBC illesztőprogram-kezelő
- JDBC tesztcsomag
- JDBC-ODBC híd
6) Mik a JDBC utasítások?
A JDBC nyilatkozatoknak 3 típusa létezik, az alábbiak szerint:
- nyilatkozat: Végre fog hajtani SQL lekérdezés (statikus SQL lekérdezés) az adatbázis ellen.
- Elkészített nyilatkozat: Akkor használjuk, ha ismételten szeretnénk végrehajtani az SQL utasítást. A bemeneti adatok dinamikusak, és futási időben kerülnek bemenetre.
- Hívható nyilatkozat: Akkor használjuk, ha tárolt eljárásokat akarunk végrehajtani.
7) Hogyan hajthatunk végre tárolt eljárásokat?
A tárolt eljárások a JDBCcallable utasítással hajthatók végre. Itt a kód.
Connection conn = null; CallableStatement callStmt = conn.prepareCall("{call myStoreproc(?, ?)}"); callStmt.setString(1, "abcdefg");
8) Milyen előnyei vannak a PreparedStatement Java-ban való használatának?
A Prepared Statement ugyanazon SQL utasítások ismételt végrehajtására szolgál. Az elkészített utasítás csak egyszer kerül lefordításra, annak ellenére, hogy „n” számú alkalommal használta
9) Mi az a ResultSet?
A java.sql.ResultSet felület egy SQL lekérdezés eredménykészletét jelenti. Ez azt jelenti, hogy a kurzor a táblázat egy sorára mutat; az első sor elé mutat.
10) Melyek a ResultSet típusai?
Háromféle ResultSet áll rendelkezésre. Ha nem deklarálunk ResultSet-et, az azt jelenti, hogy a TYPE_FORWARD_ONLY-t hívjuk
- TYPE_FORWARD_ONLY: a kurzor csak előre mozoghat.
- TYPE_SCROLL_INSENSITIVE: a kurzor mozoghat előre és hátra, de nem érzékeny.
- TYPE_SCROLL_SENSITIVE: a kurzor előre és hátra mozoghat, de érzékeny
11) Magyarázza el a különbséget a RowSet és a ResultSet között a JDBC-ben?
ResultSet leíró kapcsolat esetén egy DB-hez nem állíthatjuk be a Result-ot soros objektumként.
A fenti probléma miatt nem tudjuk átadni a Resultset-et a hálózaton keresztül.
A RowSet kiterjeszti a ResultSet felületet, így a ResultSet összes metódusát tartalmazza. A RowSet szerializált.
Tehát átadhatjuk a Rowset-et egyik osztályból a másik osztályba, mert nincs kapcsolata az adatbázissal.
12) Miért használja a setAutoCommit(false) paramétert a JDBC-ben?
Ha ki szeretné kapcsolni az automatikus véglegesítést, akkor állítsa be a connection.setAutoCommit(false) beállítást.
13) Mik azok az adatbázis-figyelmeztetések a JDBC-ben, és hogyan kezelhetjük az adatbázis-figyelmeztetéseket a JDBC-ben?
Az SQL figyelmeztetés vagy az Adatbázis figyelmeztetés az SQLException osztály alosztálya. Ezt a getWarnings() metódus használatával tudjuk kezelni a Connection, Statement és ResultSet oldalon
14) Kaphatok null ResultSetet?
Nem, nem kaphatunk null Resultset-et. A ResultSet.next() null értékkel térhet vissza, ha a következő rekord nem tartalmaz sort.
15) Mit értesz metaadatok alatt, és miért használjuk őket?
A metaadatok adatokat vagy más adatokkal kapcsolatos információkat jelentenek. A metaadatok segítségével lekérjük az adatbázistermék verzióját, az illesztőprogram nevét, a táblák és nézetek teljes számát.
16) Mi a különbség a végrehajtás, az executeQuery és az executeUpdate között a JDBC-ben?
execute(): bármilyen SQL lekérdezéshez használható.
executeQuery() : kiválasztható lekérdezéshez használható.
executeUpdate(): tábla módosítására/frissítésére használható.
17) Mi az adatbázis-kapcsolat pooling? A kapcsolati medence használatának előnyei?
A kapcsolatkészletezés azt jelenti, hogy a kapcsolatok a gyorsítótárban lesznek tárolva, és a jövőben újra felhasználhatjuk őket.
Előny:
- Gyorsabb
- A kapcsolatkészletezés könnyebbé teszi az adatbázis-kapcsolat diagnosztizálását és elemzését.
18) Mi a DriverManager osztály funkciója?
Ez egy interfész a felhasználó és az illesztőprogramok között. A DriverManager nyomon követi az adatbázis és a megfelelő illesztőprogram közötti összes tevékenységet.
19) Mit jelentenek a kötegelt frissítések?
A kötegelt frissítések SQL-lekérdezések halmazának/csoportjának egyszerre történő végrehajtását jelentik.
A kötegelt frissítések csak beszúráshoz, frissítéshez és törléshez használhatók, kiválasztott lekérdezéshez azonban nem.
20) Hány csomag érhető el a JDBC API-ban?
A JDBC API-ban kétféle csomag érhető el
- java.sql
- javax.sql
21) Mi az execute, executeQuery és executeUpdate visszatérési típusa?
A végrehajtás visszatérési típusa logikai
Az executeQuery visszatérési típusa a ResultSet objektum
Az executeUpdate visszatérési típusa int
22) Az eredménykészlet indexe 0-val vagy 1-gyel kezdődik?
Az eredménykészlet indexe 1-gyel kezdődik.
23) Mi a Class.forName szerepe az illesztőprogramok betöltésekor?
A Class.forName létrehozza a JDBC illesztőprogram egy példányát, és regisztrál a DriverManager szolgáltatásban.
24) A JDBC-ODBC híd többszálas vagy nem?
Nem, a JDBC-ODBC Bridge szinkronizált módszereket használ az ODBC-nek indított összes hívás sorba rendezésére.
25) Melyik interfész kezeli a tranzakciókezelést a JDBC-ben?
A kapcsolati felület a JDBC tranzakciókezelését kezeli. Módszert biztosít a véglegesítéshez (), a visszaállításhoz () stb.
26) Miért jelenik meg a „Nincs megfelelő illesztőprogram” hiba?
Nincs megfelelő illesztőprogram” jelenik meg, amikor a DriverManager.getConnection metódust hívjuk,
a következő okok miatt fordulhat elő:
- nem tudja betölteni a pontos JDBC illesztőprogramokat a getConnection metódus meghívása előtt.
- Lehet, hogy érvénytelen vagy rossz JDBC URL.
27) Az elkészített nyilatkozatok gyorsabbak. Miért?
Az előkészített utasítás-végrehajtás gyorsabb, mint a közvetlen végrehajtás, mivel az utasítás csak egyszer kerül lefordításra. Az előkészített utasítások és a JDBC-illesztőprogram a végrehajtás során összekapcsolódnak egymással, és nincsenek kapcsolati többletköltségek.
28) Lehetséges több adatbázishoz csatlakozni? Egyetlen utasítás használatával frissíthetünk vagy kinyerhetünk adatokat két vagy három vagy több adatbázisból?
Igen, egyszerre több adatbázishoz is lehet csatlakozni, de ez az adott illesztőprogramtól függ.
A különböző adatbázisok adatainak frissítéséhez és kinyeréséhez használhatjuk az egyetlen utasítást. De köztes szoftverre van szükségünk több adatbázis vagy egyetlen adatbázis kezeléséhez.
29) Mondjon különbséget a setMaxRows(int) és a SetFetchSize(int) között?
setMaxRows(int) | SetFetchSize(int)? |
Meghatározza, hogy egy eredményhalmaz egyszerre hány sort tartalmazhat | Meghatározza az adatbázisból kiolvasott sorok számát. |
30) Mesélj a különleges karakterekről?
A speciális karaktert egy escape karakter előzi meg. Példa -
SELECT NAME FROM TABLE WHERE NAME LIKE '\_%' {escape '\'}
31) Mit jelent a „piszkos olvasmány” az adatbázisban?
A piszkos olvasás azt jelenti, hogy „olvassa el azt az értéket, amely lehet helyes vagy nem megfelelő”.
32) Mit értesz kétfázisú commit alatt?
Az elosztott tranzakciós folyamatban kétfázisú véglegesítést használnak. Ha bármilyen tranzakció fut, az több adatbázisra is hatással lesz. Kétfázisú véglegesítést használnak az adatbázisok egymással való szinkronizálására.
33) Hány zárrendszer van a JDBC-ben?
A JDBC-ben kétféle zárolás érhető el, amelyekkel egynél több felhasználót tudunk kezelni.
Ha két felhasználó ugyanazt a rekordot nézi, akkor nem történik zárolás. Ha az egyik felhasználó frissít egy rekordot, és a második felhasználó is frissíti ugyanazt a rekordot. Ekkor zárolást fogunk használni.
- Optimista zárolás: csak akkor zárolja a rekordot, ha „frissítés”-re készülünk.
- Pesszimista zárolás: zárolja a rekordot a „kiválasztástól” a megtekintéshez, frissítéshez és véglegesítéshez.
34) Mik a kivételek a JDBC-ben?
A JDBC-ben négyféle kivétel létezik.
- batchUpdate kivétel
- Adatcsonkítás
- SQL kivétel
- SQL figyelmeztetés
35) Adjon lépéseket a DB-hez való csatlakozáshoz JDBC használatával?
Kétféleképpen lehet adatbázist csatlakoztatni JDBC használatával
- A DriverManager használata:
A driver osztályt a class.forName(driver class) és a Class.forName() segítségével fogja betölteni.
Betöltés után az irányítást a DriverManager adja át.
A DriverManager.getConnection() létrehozza a kapcsolatot az adatbázis eléréséhez.
- DataSource használata:
A DataSource esetében nincs szükség a DriverManager használatára a JNDI segítségével. Megkeresi az adatforrást az elnevezési szolgáltatáskiszolgálóról. A DataSource.getConnection() metódus visszaadja a Connection objektumot a DB-nek.
36) Magyarázza el a JDBC architektúrát?
A JDBC API 2- és 3-rétegű modelleket is támogat az adatbázishoz.
A 2-rétegű modellben a Java-alkalmazás kölcsönhatásba lép az adatforrással
A 3-szintű modellben a parancsok a szolgáltatások „középső szintjére” vannak átirányítva. Ezt követően a parancsok elküldik az adatforrásnak.
37) Milyen új funkciók érhetők el a JDBC 4.0-ban?
Az új funkciók a
- Automatikus betöltés JDBC illesztőprogram-osztály szerint
- Továbbfejlesztett kapcsolatkezelés
- RowId SQL engedélyezve
- SQL által implementált adatkészlet annotációk használatával
- Az SQL-kivételek kezelésének továbbfejlesztései
- SQL támogatása XML fájlok
38) Milyen csomagokat használ a JDBC?
8 csomagot használnak a JDBC-ben –
- sql.Driver
- csatlakozás
- nyilatkozat
- Készített nyilatkozat
- CallableStatement
- ResultSet
- ResultSetMetaData
- DatabaseMetaData
39) Hány RowSet érhető el a JDBC-ben?
Kétféle sorkészlet áll rendelkezésre:
- Összefüggő – A csatlakoztatott RowSet objektum azonnal csatlakozik az adatbázishoz. Ha az alkalmazás leáll, akkor a csatlakoztatott RowSet objektum is leáll.
- Szétkapcsolt – A leválasztott RowSet objektum a szükséges lekérdezés végrehajtása után csatlakozik az adatbázishoz.
40) Mit jelent a kapcsolat?
A csatlakozási felület az adatbázissal való interakció módszereiből áll.
41) Magyarázza el a JDBC mentési pontot?
A mentési pont azt a pontot jelöli, amelyre az aktuális tranzakció visszatérhet. Ahelyett, hogy az összes módosítást visszaállítaná, dönthet úgy, hogy csak néhányat állít vissza.
42) Sorolja fel a DataSource használatának előnyeit?
Az adatforrás megosztja a munkát rendszergazda és programozó/fejlesztő között.
Az adminisztrátor létrehoz egy DataSource objektumot, és összekapcsolja a JNDI nyilvántartással. A programozó/fejlesztő lekéri a DataSource objektumot a rendszerleíró adatbázisból. Ezután létrehozza a kapcsolatot az adatbázissal.
43) Mi az oka annak, hogy szükségünk van egy JdbcRowSet-re, mint a ResultSet körüli burkoló?
JavaBeans komponensként használhatjuk a ResultSet objektumot.
- A JdbcRowSet JavaBeans komponensként is használható. Ez az oka annak, hogy tervezési vagy fordítási időben létrehozható és konfigurálható, és futási időben végrehajtható.
- Minden jdbcRowSet objektum görgethető és frissíthető.
44) Hányféleképpen tekinthetünk meg egy eredményhalmazt?
A ResultSet kétféleképpen tekinthető meg
- oszlop
- oszlop index.
Példa: getInt(String oszlopnév), getInt(int oszlopIndex)
45) Hányféleképpen frissíthet egy eredménykészletet?
Az alábbi módszerek segítenek az eredménykészlet frissítésében
- updateRow()
- deleteRow()
- refreshRow()
- cancelRowUpdates()
- insertRow()
46) Miért zárjuk be az adatbázis-kapcsolatokat a Java nyelven?
Legjobb gyakorlatként be kell zárnunk az eredményhalmazt, az állítást és a kapcsolatot. Ha a kapcsolat egy készletből érkezik, a kapcsolat bezárásakor visszaküldésre kerül a készletbe újrafelhasználásra. Ezt a végre{} blokkban tesszük, mert ha kivétel történik, akkor is lehetőségünk van ezt bezárni.
47) Miért használunk blob adattípusokat a JDBC-ben?
Ezek nagy mennyiségű adat tárolására szolgálnak az adatbázisban, például képek, filmek stb.
48) Hogyan állítsuk be a Concurrency attribútumot a ResultSetben?
Két párhuzamossági szint létezik
- CONCUR_READ_ONLY – Csak olvasásra szolgál.
- CONCUR_UPDATABLE – Olvasásra és frissítésre egyaránt alkalmas.
49) Mi a különbség a kliens és a szerver adatbázis kurzorai között?
A szerveroldali kurzor azt jelenti, hogy az adatok és az eredmények a szerveren vannak mentve. Csak akkor, ha a kért adatokat elküldik az ügyfélnek.
Az ügyféloldali kurzor az ügyfél helyére küldött összes adatot jelenti.
50) Hogyan lehet képeket beszúrni az adatbázisba a JDBC használatával?
Képek az adatbázisban a BLOB adattípus használatával, ahol a kép bájtfolyamként van tárolva. Az alábbi kód bemutatja, hogyan kell beilleszteni a képet a DB-be.
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();
Ezek az interjúkérdések a viva-ban is segítenek.
nagyon jól használható a diákok számára…………..
Legjobb