50 parimat JDBC intervjuu küsimust ja vastust (2026)
Kas valmistud järgmiseks JDBC intervjuuks? Eelnev planeerimine tähendab JDBC intervjuu maastiku mõistmist ja seda, milliseid teadmisi võivad läbimõeldud küsimused nii kandidaatidele kui ka tööandjatele protsessi käigus anda.
JDBC oskused avavad suurepäraseid võimalusi tänapäevases rakenduste arendamises, kus tehniline kogemus ja valdkonnaalane asjatundlikkus toetavad reaalse maailma andmetele juurdepääsu vajadusi. Valdkonna spetsialistid kasutavad analüüsi-, analüüsimis- ja algtaseme kogemusi, et tulla toime tavaliste ja keerukate väljakutsetega, millega tänapäeval silmitsi seisavad algajad, kogenud insenerid, keskastme arendajad ja meeskonnajuhid. Loe rohkem…
👉 Tasuta PDF-i allalaadimine: JDBC intervjuuküsimused ja vastused
JDBC intervjuu parimad küsimused ja vastused
1) Mis on JDBC ja miks see on oluline? Java rakendused?
JDBC (Java Andmebaasiühendus) on API, mis võimaldab Java rakenduste suhtlemist relatsioonandmebaasidega. See pakub standardiseeritud liidest SQL-lausete saatmiseks, andmete hankimiseks ja tehingute haldamiseks. JDBC toimib sillana Java kood ja andmebaasi draiver, mis võimaldab platvormist sõltumatuid andmebaasioperatsioone. Selle peamine eelis on pakutav abstraktsioon – arendajad saavad andmebaase vahetada (nt MySQL, Oracle, PostgreSQL) minimaalse koodimuudatusega.
Näide: Veebirakendus saab JDBC abil kasutajaandmeid saidilt hankida. MySQL andmebaasi kaudu Connection, Statementja ResultSet objektid.
2) Millised on erinevat tüüpi JDBC draiverid? Selgitage nende omadusi.
JDBC defineerib nelja tüüpi draivereid, mis erinevad jõudluse ja sõltuvuse poolest natiivkoodist.
| Juhi tüüp | Nimi | Kirjeldus | Eelised | Puudused |
|---|---|---|---|---|
| kirjuta 1 | JDBC-ODBC sild | Teisendab JDBC-kõned ODBC-kõnedeks | Lihtne kasutada | Nõuab ODBC installimist |
| kirjuta 2 | Natiivne API | Teisendab JDBC kõned natiivseteks andmebaasi API-deks | Parem jõudlus kui 1. tüübil | Platvormist sõltuv |
| kirjuta 3 | Network protokolli | Kasutab kõnede tõlkimiseks vahetarkvara | Andmebaasist sõltumatu | Lisavõrgu üldkulud |
| kirjuta 4 | Õhuke draiver | Teisendab JDBC kõned andmebaasispetsiifiliseks protokolliks | Parim jõudlus; puhas Java | Vajalik on andmebaasispetsiifiline draiver |
4. tüüpi draivereid eelistatakse tänapäevastes rakendustes nende kaasaskantavuse ja suure jõudluse tõttu.
3) Selgitage JDBC programmi elutsüklit.
JDBC elutsükkel koosneb võtmeetappidest ressursside tõhusaks ühendamiseks, päringute teostamiseks ja sulgemiseks.
- Koormuse draiveri klass: Kasutamine
Class.forName("com.mysql.cj.jdbc.Driver"). - Ühenduse loomine: Läbi
DriverManager.getConnection(). - Loo lauseobjekt:
Statement,PreparedStatementvõiCallableStatement. - SQL-päringute käivitamine: Kasutamine
executeQuery()orexecuteUpdate(). - Protsessi tulemused: Andmete hankimine, kasutades
ResultSet. - Sule ressursid: Lekete vältimiseks vabastage ühendused ja avaldused.
Selle elutsükli nõuetekohane haldamine tagab stabiilsuse, skaleeritavuse ja hoiab ära mälu või ühenduste kogumi ammendumise ettevõtte süsteemides.
4) Mis vahe on avaldusel (Statement), ettevalmistatud avaldusel (PreparedStatement) ja kutsutaval avaldusel (CallableStatement)?
Need liidesed esindavad erinevaid viise SQL-päringute käivitamiseks JDBC-s.
| Interface | Kasutatud | omadused | Näide |
|---|---|---|---|
| väljavõte | Lihtsad SQL-päringud | Ei aktsepteeri parameetreid | statement.executeQuery("SELECT * FROM users"); |
| Ettevalmistatud avaldus | Parameetriline SQL | Hoiab ära SQL-süstimise, parandab jõudlust | ps.setString(1, "John"); |
| Callable Statement | Salvestatud protseduurid | Kasutatakse andmebaasifunktsioonide täitmiseks | cs.call("{call getUser(?)}"); |
Ettevalmistatud avaldused on turvalisuse ja kompileerimiseelsete eeliste tõttu kõige laialdasemalt kasutatavad.
5) Kuidas saab JDBC-s tehinguid hallata?
JDBC tehingud tagavad andmete terviklikkuse, grupeerides mitu toimingut ühte loogilisse üksusesse. Arendajad saavad tehinguid käsitsi juhtida järgmiselt:
- Keela automaatne kinnitamine:
conn.setAutoCommit(false); - Käivita mitu SQL-lauset.
- Pühendu edule:
conn.commit(); - Tagasipööramine ebaõnnestumise korral:
conn.rollback();
See tagab aatomilisuse – kas kõik toimingud õnnestuvad või mitte ükski.
Näide: Kahe konto vaheline raha ülekandmine hõlmab deebet- ja krediidipäringuid, mis mõlemad teostatakse ühe tehingu raames, et vältida andmete ebajärjekindlust.
6) Millised on JDBC-ühenduste koondamise eelised ja puudused?
Ühenduste koondamine parandab andmebaasi jõudlust, taaskasutades aktiivseid ühendusi iga kord uute loomise asemel.
| Aspekt | Eelised | Puudused |
|---|---|---|
| jõudlus | Vähendab ühenduste loomise üldkulusid | Nõuab hoolikat seadistamist |
| Skaalautuvus | Toetab tõhusalt suuri kasutajakoormusi | Võib põhjustada aegunud ühendusi |
| Resource Management | Optimeerib andmebaasiühendusi | Suurendab silumise keerukust |
Selliste raamistike nagu HikariCP või Apache DBCP kasutamine pakub ettevõtteklassi süsteemidele tõhusat ja usaldusväärset ühenduste koondamist.
7) Selgita execute(), executeQuery() ja executeUpdate() funktsioonide erinevust.
Need kolm meetodit kuuluvad Statement liides ja täidavad erinevaid eesmärke:
| Meetod | Kasuta Case'it | Tagastuse tüüp | Näide |
|---|---|---|---|
| täitma () | Suvaline SQL-käsk | loogiline | Salvestatud protseduuride jaoks |
| executeQuery() | SELECT-päringud | Tulemuskomplekt | Hangib kirjeid |
| käivitaUuenda() | LISAGE, UUENDAGE, KUSTUTAGE | int (mõjutatud read) | Muudab andmeid |
Näide:
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE");
int count = stmt.executeUpdate("UPDATE EMPLOYEE SET salary=5000 WHERE id=1");
Nende eristuste mõistmine tagab SQL-lausete korrektse täitmise JDBC-s.
8) Kuidas saate parandada JDBC jõudlust?
JDBC jõudlust saab parandada mitmete parimate tavade abil:
- Kasutama Ettevalmistatud avaldus eelkompileeritud SQL-i jaoks.
- Täitma partiivärskendused massandmete toimingute jaoks.
- Kasutama ühenduste koondamine sagedaste uute ühenduste asemel.
- Tooge ainult vajalikud veerud, mitte
SELECT *. - Lekete vältimiseks sulgege ressursid korralikult.
Näide: Kasutamine addBatch() ja executeBatch() 1000 sisestuse puhul vähendab see oluliselt andmebaasi edasi-tagasi käike, parandades tõhusust.
9) Mis on JDBC-s partiivärskendused? Kuidas need toimivad?
Partiivärskendused võimaldavad mitme SQL-lause samaaegset käivitamist, minimeerides suhtlust andmebaasiga.
Sammud:
- Loo
PreparedStatement. - Lisage mitu päringut, kasutades
addBatch(). - Käivita need kõik, kasutades
executeBatch().
Näide:
PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES(?, ?)");
ps.setInt(1, 1); ps.setString(2, "Alice"); ps.addBatch();
ps.setInt(1, 2); ps.setString(2, "Bob"); ps.addBatch();
ps.executeBatch();
Pakkide töötlus parandab oluliselt jõudlust suuremahuliste andmete sisestamisel või värskendamisel.
10) Milline on ResultSet-liidese roll JDBC-s?
ResultSet tähistab SQL-päringu käivitamise teel loodud andmete tabelit. See võimaldab ridade kaupa iteratsiooni ja veergude väärtustele juurdepääsu, kasutades getXXX() meetodid.
Näide:
ResultSet rs = stmt.executeQuery("SELECT name FROM employees");
while(rs.next()) {
System.out.println(rs.getString("name"));
}
Tulemuste komplekti tüübid:
- AINULT EDASI – Liikuda saab ainult edasi.
- TÜÜPI_KERIMINE_TUNDETUNDETU – Keritav, kuid mitte tundlik andmebaasi muudatuste suhtes.
- TÜÜPI_KERIMISE_TUNDLIK – Kajastab andmebaasis reaalajas toimuvaid muudatusi.
ResultSet on päringutulemuste tõhusaks ja paindlikuks lugemiseks ülioluline.
11) Mis vahe on JDBC-l ja ODBC-l?
JDBC (Java Nii andmebaaside ühenduvus kui ka ODBC (avatud andmebaaside ühenduvus) võimaldavad juurdepääsu andmebaasidele, kuid need erinevad põhimõtteliselt platvormisõltuvuse ja kasutuse poolest.
| Faktor | JDBC | ODBC |
|---|---|---|
| Keel | Puhas Java | C-põhine |
| Platvorm | Platvormist sõltumatu | Platvormist sõltuv |
| Draiveritüübid | Tüüp 1–4 | Üks ODBC-draiver |
| jõudlus | Kõrgem (4. tüüp) | Madalam tänu sildamisele |
| Kasutus | Java rakendused | Windows-põhised programmid |
Kokkuvõte: JDBC on kohandatud Java keskkondades ja pakub sujuvat kaasaskantavust andmebaaside vahel. ODBC, kuigi mitmekülgne, pakub täiendavaid natiivseid sõltuvusi, muutes JDBC-ks tänapäevase ettevõtte jaoks parimaks valikuks. Java rakendusi.
12) Millised on JDBC arhitektuuri erinevad komponendid?
JDBC arhitektuur koosneb võtmekomponentidest, mis omavahel suhtlevad, et võimaldada andmebaasiga suhtlemist:
- JDBC API – Pakub selliseid tunde nagu
Connection,StatementjaResultSet. - JDBC draiverite haldur – Haldab andmebaasi draiverite loendit.
- JDBC testidraiverid – Andmebaasisuhtluse tüüpide 1–4 implementatsioonid.
- andmebaas – Tagasüsteem, mis salvestab tegelikke andmeid.
Näidisvoog: Java Rakendus → JDBC API → JDBC draiverihaldur → JDBC draiver → Andmebaas
See kihiline struktuur võimaldab JDBC-l saavutada paindlikkust, tarnijast sõltumatust ja paremat hooldatavust.
13) Mis on JDBC-s ResultSetMetaData ja DatabaseMetaData?
Mõlemad klassid pakuvad väärtuslikke metaandmeid, kuid täidavad erinevaid eesmärke.
| Metaandmete tüüp | Kirjeldus | Kasutamise näide |
|---|---|---|
| ResultSetMetaData | Annab teavet päringutulemuse veergude kohta | rsmd.getColumnName(1) |
| DatabaseMetaData | Annab teavet andmebaasi enda kohta | dbmd.getDatabaseProductName() |
Näide:
DatabaseMetaData dbmd = conn.getMetaData(); System.out.println(dbmd.getDriverName());
Need metaandmete liidesed aitavad arendajatel dünaamiliselt uurida andmebaasi skeemi üksikasju ilma väljanimesid või tüüpe kõvakodeerimata.
14) Kuidas JDBC tehingutes salvestuspunkte kasutada?
A Salvestuspunkt lubab tehingu sees osalisi tagasipööramisi. See tähistab punkti, milleni tehingut saab tagasi pöörata ilma kogu tehingut tagasi võtmata.
Näide:
conn.setAutoCommit(false);
Savepoint sp1 = conn.setSavepoint("Save1");
// Perform operations
conn.rollback(sp1); // Roll back only to this point
conn.commit();
Eelised:
- Parandab kontrolli suurte tehingute üle.
- Vähendab täieliku tagasilöögi ohtu.
- Parandab andmete terviklikkust osaliste toimingute isoleerimise teel.
Salvestuspunktid on eriti kasulikud finants- või mitmeastmeliste andmetoimingute puhul.
15) Selgitage JDBC-s RowSet'i kontseptsiooni. Millised on selle tüübid?
A Reakomplekt on laiendus ResultSet mis toetab lahtiühendatud, keritavat ja serialiseeritavat andmejuurdepääsu. Erinevalt ResultSet, seda saab kasutada ilma pidevat andmebaasiühendust säilitamata.
Reakomplekti tüübid:
- JdbcRowSet – Ühendatud reakomplekt.
- Vahemällu salvestatud ridade komplekt – Reakomplekt lahti ühendatud.
- Veebirea komplekt – XML-põhine reakomplekt.
- Filtreeritud ridade komplekt – Andmete filtreeritud vaade.
- JoinRowSet – Ühendab mitu reakomplekti.
Näide:
CachedRowSet crs = new CachedRowSetImpl();
crs.setUrl("jdbc:mysql://localhost/test");
crs.setCommand("SELECT * FROM EMPLOYEE");
crs.execute();
Eelis: Reakomplektid võimaldavad kerget ja võrguühenduseta andmetega manipuleerimist – ideaalne mobiilsete või võrguühenduseta süsteemide jaoks.
16) Kuidas JDBC SQL-i erandeid käsitleb?
JDBC käsitleb andmebaasiga seotud vigu läbi SQLException klass. See pakub meetodeid üksikasjaliku veateabe hankimiseks:
getErrorCode()– Tagastab müüjaspetsiifilise koodi.getSQLState()– Tagastab SQL-i standardse olekukoodi.getMessage()– Esitab vea kirjelduse.
Näide:
try {
stmt.executeQuery("SELECT * FROM invalid_table");
} catch(SQLException e) {
System.out.println("Error Code: " + e.getErrorCode());
}
Vihje: Parema silumise tagamiseks logige alati erandeid ja tühistage tehingud, et säilitada andmete järjepidevus.
17) Mis on JDBC-s partiitöötlus ja kuidas see tõhusust parandab?
Pakktöötlus võimaldab mitme SQL-lause täitmist ühe üksusena, minimeerides üksikute kõnede üldkulu.
Näide:
Statement stmt = conn.createStatement();
stmt.addBatch("INSERT INTO STUDENT VALUES(1, 'John')");
stmt.addBatch("INSERT INTO STUDENT VALUES(2, 'Alex')");
stmt.executeBatch();
Plussid:
- Vähendab võrgu edasi-tagasi reise.
- Parandab tehingute toimivust.
- Minimeerib andmebaasiühenduse kasutamist.
Pakktöötlus sobib ideaalselt suuremahuliste andmete importimiseks või korduvate DML-toimingute jaoks.
18) Millised on JDBC-s erinevad lausetüübid?
JDBC pakub kolme peamist tüüpi avaldusi, millest igaüks on optimeeritud erinevate kasutusjuhtude jaoks.
| Avalduse tüüp | Kirjeldus | Kasuta Case'it |
|---|---|---|
| väljavõte | Täidab lihtsaid SQL-päringuid | Staatilise SQL-i jaoks |
| Ettevalmistatud avaldus | Eelkompileeritud SQL parameetritega | Dünaamilise SQL-i jaoks muutujatega |
| Callable Statement | Käivitab salvestatud protseduure | Andmebaasipoolse loogika käivitamiseks |
Näide:
CallableStatement cs = conn.prepareCall("{call updateSalary(?)}");
cs.setInt(1, 5000);
cs.execute();
Õige tüübi valimine tagab parema jõudluse ja hooldatavuse.
19) Kuidas hallata JDBC-ühendusi ettevõtterakendustes tõhusalt?
Tõhus ühenduste haldamine hoiab ära ressursside ammendumise ja parandab skaleeritavust. Parimad tavad hõlmavad järgmist:
- Kasutama Ühendus Pooling (nt HikariCP, DBCP).
- Alati lähedal ühendused a-s
finallyblokeerida. - Vältige sagedast avamist/sulgemist; võimaluse korral taaskasutage.
- Jälgige ühenduste lekkeid basseini logide abil.
Näide:
try (Connection conn = dataSource.getConnection()) {
// Operations
}
Pooling võimaldab mitmel lõimel jagada eelnevalt loodud ühendusi, vähendades latentsust ja parandades üldist läbilaskevõimet.
20) Mis vahe on JDBC lausel ja Hibernate seansil?
Kuigi mõlemad pääsevad juurde andmebaasidele, erinevad nad oluliselt abstraktsiooni ja funktsionaalsuse poolest.
| tunnusjoon | JDBC avaldus | Talveune seanss |
|---|---|---|
| Tase | Madala taseme API | Kõrgetasemeline ORM |
| Päringu tüüp | SQL | HQL/kriteeriumide API |
| tehing | Käsitsi käsitsemine | Sisseehitatud tugi |
| Kaardistamine | Veergude käsitsi kaardistamine | Üksuspõhine |
| Vahemällu salvestamine | Ei toetata | Toetatud |
Näide:
- JDBC: Arendaja kirjutab SQL-päringuid käsitsi.
- Talveuni: genereerib üksustest automaatselt SQL-i.
Hibernate kasutab sisemiselt JDBC-d, kuid lisab ORM-võimalused, vahemällu salvestamise ja tehingute haldamise, lihtsustades ettevõtte andmebaasi toiminguid.
21) Kuidas saab JDBC-s pärast INSERT-lause käivitamist automaatselt genereeritud võtmeid kätte saada?
Automaatselt genereeritud võtmed on andmebaasi poolt automaatselt loodud väärtused, näiteks primaarvõtme ID-d. JDBC pakub Statement.RETURN_GENERATED_KEYS võimalus neid tagasi saada.
Näide:
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO employee(name, salary) VALUES(?, ?)",
Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "Alice");
ps.setDouble(2, 60000);
ps.executeUpdate();
ResultSet rs = ps.getGeneratedKeys();
if(rs.next()) {
int id = rs.getInt(1);
System.out.println("Generated ID: " + id);
}
Kasu: See funktsioon on oluline andmete sisestamisel tabelitesse, millel on automaatselt suurenevad väljad, võimaldades äsja loodud kirjete identifikaatorite hõlpsat leidmist.
22) Mis on BLOB ja CLOB JDBC-s ning kuidas neid käsitletakse?
BLOB-e (Binary Large Object) ja CLOB-e (Character Large Object) kasutatakse suurte andmete, näiteks piltide, videote ja suurte tekstifailide salvestamiseks.
| KASUTUSALA | Salvestatud andmed | JDBC meetod |
|---|---|---|
| MÄNG | Binaarsed andmed (pildid, heli) | getBinaryStream() / setBinaryStream() |
| CLOB | Märkide andmed (XML, tekst) | getCharacterStream() / setCharacterStream() |
Näide:
PreparedStatement ps = conn.prepareStatement("INSERT INTO files VALUES(?, ?)");
FileInputStream fis = new FileInputStream("photo.jpg");
ps.setBinaryStream(1, fis, (int)new File("photo.jpg").length());
ps.executeUpdate();
Märge: Ressursside lekete vältimiseks ja failide nõuetekohase käitlemise tagamiseks sulgege alati vood.
23) Kuidas saab ResultSet'i keritavaks ja uuendatavaks muuta?
Vaikimisi on ResultSet on ainult edasisuunamiseks ja kirjutuskaitstud. Selle kerimiseks ja värskendamiseks peate looma Statement kindla tüübi ja samaaegsusrežiimidega.
Näide:
Statement stmt = conn.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE");
rs.absolute(3);
rs.updateString("name", "UpdatedName");
rs.updateRow();
Selgitus:
TYPE_SCROLL_INSENSITIVE: Võimaldab juhuslikku navigeerimist, ignoreerib andmebaasi muudatusi.CONCUR_UPDATABLE: Võimaldab andmete muutmist otseResultSet.
24) Mis on JDBC-s andmeallikas (DataSource) ja mille poolest see erineb DriverManagerist (DriverManager)?
DataSource on liides ühenduste haldamiseks ühendusbasseinide või hajutatud tehingute kaudu. See pakub suuremat paindlikkust kui DriverManager.
| Aspekt | Draiverihaldur | Andmeallikas |
|---|---|---|
| KASUTUSALA | Põhiline ühenduse haldamine | Täiustatud ühenduste koondamine |
| Otsing | URL-põhine | JNDI-põhine |
| Korduvkasutatavus | Loob iga kord uusi ühendusi | Kasutab taas ühendatud ühendusi |
| Parim kasutamine | Väikesed rakendused | Ettevõtte süsteemid |
Näide:
Context ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup("jdbc/mydb");
Connection conn = ds.getConnection();
DataSource'i soovitatakse kõigile ettevõtte rakendustele skaleeritavuse ja jõudluse parandamiseks.
25) Selgitage, kuidas kasutada JDBC-s PreparedStatementiga partiitöötlust.
Pakktöötlus koos PreparedStatement võimaldab sarnaste SQL-lausete tõhusat hulgi täitmist.
Näide:
PreparedStatement ps = conn.prepareStatement("INSERT INTO student VALUES(?, ?)");
for(int i=1; i<=5; i++){
ps.setInt(1, i);
ps.setString(2, "Student" + i);
ps.addBatch();
}
ps.executeBatch();
Plussid:
- Vähendab võrgu latentsust.
- Minimeerib andmebaasisuhtlust.
- Parandab tehingute läbilaskevõimet.
See meetod on eriti kasulik tuhandete kirjete sisestamisel või korduvate värskenduste tegemisel.
26) Kuidas JDBC-s andmebaasi metaandmete analüüsi teha, kasutades DatabaseMetaData't?
DatabaseMetaData annab üksikasjalikku teavet andmebaasi ja draiveri võimaluste kohta.
Näide:
DatabaseMetaData dbmd = conn.getMetaData();
System.out.println("Database: " + dbmd.getDatabaseProductName());
System.out.println("Driver: " + dbmd.getDriverName());
System.out.println("URL: " + dbmd.getURL());
Ühine Kasutusalad:
- Tuvastage toetatud SQL-funktsioonid.
- Tabeli, skeemi ja veeru teabe toomine.
- Kontrollige draiverite ühilduvust.
See on eriti kasulik rakendustes, mis vajavad dünaamilist andmebaasi kohandatavust.
27) Mis vahe on JDBC-s funktsioonidel execute(), executeQuery() ja executeUpdate()?
Neid meetodeid kasutatakse erinevat tüüpi SQL-lausete täitmiseks.
| Meetod | Tagastamine | Kasuta Case'it |
|---|---|---|
execute() |
loogiline | Kasutatakse mitme tulemuse või salvestatud protseduuride jaoks |
executeQuery() |
Tulemuskomplekt | Kasutatakse SELECT-päringute jaoks |
executeUpdate() |
int (mõjutatud read) | Kasutatakse INSERT, UPDATE ja DELETE jaoks |
Näide:
int rows = stmt.executeUpdate("UPDATE EMPLOYEE SET salary=6000 WHERE id=101");
Põhipunkt: Valige alati õige meetod, et tagada päringu korrektne täitmine ja optimaalne jõudlus.
28) Millised on JDBC ressursside sulgemise parimad tavad?
Nõuetekohane ressursihaldus hoiab ära mälulekked ja ühenduse ammendumise. Soovitatav lähenemisviis on kasutada proovi-ressurssidega in Java.
Näide:
try (Connection conn = DriverManager.getConnection(url, user, pass);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM EMPLOYEE")) {
while (rs.next()) {
System.out.println(rs.getString("name"));
}
}
Parimad tavad:
- Alati lähedal
ResultSet,StatementjaConnection. - Parema haldamise tagamiseks kasutage ühendusbasseine.
- Väldi tarbetuid avatud ühendusi.
29) Millised on mõned levinumad JDBC jõudluse optimeerimise tehnikad?
JDBC jõudluse häälestamine keskendub üldkulude vähendamisele ja läbilaskevõime parandamisele.
Optimeerimistehnikad:
- Kasutama ühenduste koondamine (nt HikariCP).
- Eelista Ettevalmistatud avaldus üle
Statement. - kehtima partiivärskendused lahtiste lisade jaoks.
- Kasutama toomise suurus suurte tulemuste saavutamiseks häälestamine.
- Tooge välja ainult vajalikud veerud (
SELECT column1,column2). - Minimeerige võrgu edasi-tagasi reise toimingute kombineerimise abil.
Näide:
stmt.setFetchSize(1000);
Need optimeerimised suurendavad kokkuvõttes rakenduse kiirust, skaleeritavust ja stabiilsust.
30) Kuidas saab JDBC-s salvestatud protseduure kutsuda?
Salvestatud protseduurid on andmebaasis talletatud eelkompileeritud SQL-laused. JDBC kasutab CallableStatement neid hukata.
Näide:
CallableStatement cs = conn.prepareCall("{call getEmployeeSalary(?)}");
cs.setInt(1, 101);
ResultSet rs = cs.executeQuery();
while (rs.next()) {
System.out.println("Salary: " + rs.getDouble(1));
}
Plussid:
- Parandab jõudlust (eelkompileeritud loogika).
- Suurendab turvalisust (kontrollitud juurdepääs).
- Soodustab koodi taaskasutamist.
Salvestatud protseduurid sobivad ideaalselt keeruka äriloogika kapseldamiseks andmebaasikihti.
31) Mis on JDBC-ühendus? Pooling, ja kuidas see sisemiselt töötab?
JDBC-ühendus Pooling on mehhanism eelnevalt loodud andmebaasiühenduste taaskasutamiseks, selle asemel, et neid korduvalt avada ja sulgeda.
Ühenduste kogumi initsialiseerimisel luuakse ja hoitakse mälus kindlaksmääratud arv andmebaasiühendusi. Kui rakendus ühendust taotleb, hangitakse see kogumist uue loomise asemel. Pärast kasutamist tagastatakse see kogumisse taaskasutamiseks.
Plussid:
- Vähendab ühenduste loomise üldkulusid.
- Parandab rakenduste reageerimisvõimet.
- Suurendab samaaegsete kasutajate skaleeritavust.
Raamistikud nagu HikariCP ja Apache DBCP kasutatakse tavaliselt nende basseinide tõhusaks haldamiseks.
32) Kuidas seadistada JDBC-s ühenduste koondamist HikariCP abil?
HikariCP on tänapäevastes rakendustes kasutatav suure jõudlusega JDBC-ühenduste bassein. Java rakendusi.
Konfiguratsiooni näide:
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/testdb");
config.setUsername("root");
config.setPassword("password");
config.setMaximumPoolSize(10);
HikariDataSource ds = new HikariDataSource(config);
Connection conn = ds.getConnection();
Peamised eelised:
- Äärmiselt kiire ja kerge.
- Madal latentsus ja minimaalne üldkulu.
- Jälgib basseini seisundit automaatselt.
HikariCP-d eelistatakse Spring Booti ja mikroteenuste jaoks tänu oma suurepärasele kiirusele ja töökindlusele.
33) Mis vahe on JDBC-s DriverManageril ja DataSource'il?
Mõlemat kasutatakse andmebaasiühenduste loomiseks, kuid need erinevad skaleeritavuse ja arhitektuuri poolest.
| tunnusjoon | Draiverihaldur | Andmeallikas |
|---|---|---|
| Connection Type | Otseühendus | Ühistatud / jaotatud |
| konfiguratsioon | Koodis kõvakodeeritud | Konfigureeritud väliselt JNDI kaudu |
| jõudlus | Langetage | Kõrgem |
| Ettevõtte kasutus | Väikesed rakendused | Ettevõtte tasemel süsteemid |
| Tehingud | piiratud | Toetab XA tehinguid |
Kokkuvõte: Kui DriverManager on lihtsam, DataSource pakub professionaalset ühenduste haldust, mis sobib veebi- ja ettevõttekeskkondadesse.
34) Millised on JDBC-s vea „Sobivat draiverit ei leitud” levinumad põhjused?
See on sagedane viga, kui JDBC ei leia või ei laadi andmebaasi draiverit.
Põhjused:
- JDBC draiveri JAR-faili ei ole klassiteed kaasatud.
- Vale JDBC URL-i vorming.
- Puuduvad
Class.forName()avaldus (vanemate jaoks Java versioonid). - Draiveri ja andmebaasi versioonide erinevus.
Näidisparandus:
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "pass");
Draiveri õige registreerimise ja ühilduvate versioonide tagamine lahendab selle probleemi.
35) Kuidas saab JDBC-s SQL-süstimise rünnakuid ära hoida?
SQL-süstimine toimub siis, kui päringusse sisestatakse pahatahtlik SQL-kood. Parim kaitse on PreparedStatementi kasutamine stringide liitmise asemel.
Ebaturvaline kood:
Statement stmt = conn.createStatement();
stmt.executeQuery("SELECT * FROM users WHERE name='" + userInput + "'");
Turvakood:
PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE name=?");
ps.setString(1, userInput);
Muud meetmed:
- Sisendite valideerimine ja puhastamine.
- Piira andmebaasi õigusi.
- Kasutage tundlike toimingute jaoks salvestatud protseduure.
PreparedStatements asendab erimärgid automaatselt, muutes need turvalise JDBC-koodi jaoks hädavajalikuks.
36) Millised on JDBC otsese kasutamise eelised ja puudused võrreldes ORM-raamistike (nt Hibernate) kasutamisega?
| Aspekt | JDBC | Talveund magama |
|---|---|---|
| Kontroll | Täppisdetailne SQL-kontroll | Automatiseeritud ORM-kaardistamine |
| jõudlus | Kiirem väikeste ülesannete jaoks | Veidi aeglasem (abstraktsioon) |
| Õppimiskõver | Lihtsam | Keeruline |
| Kaasaskantavus | Piiratud SQL-dialektiga | Kõrge (andmebaasist sõltumatu) |
| Tootlikkus | Käsitsi kodeerimine | Vähendatud standardvorm |
Kokkuvõte: JDBC pakub täielikku kontrolli ja jõudlust, kuid nõuab tehingute haldamisel ja objektide kaardistamisel rohkem pingutust. Hibernate lihtsustab CRUD-toiminguid ja toetab vahemällu salvestamist, kuid võib kergemate rakenduste jaoks olla liiast.
37) Kuidas logida JDBC kaudu teostatud SQL-päringuid?
SQL-päringute logimine on oluline silumiseks ja jõudluse jälgimiseks.
Tehnikad:
- JDBC draiveri logimise lubamine:
eest MySQL, lisa:jdbc:mysql://localhost:3306/test?logger=com.mysql.cj.log.StandardLogger - Kasutage logimisraamistikke:
Mähi JDBC SLF4J või Log4j pealtkuulajatega. - Ühenduse puhverserveri teegid:
Tööriistad nagu P6Spy or andmeallika puhverserver JDBC kõnede pealtkuulamine ja SQL päringute läbipaistva logimine.
Näide (P6Spy konfiguratsioon):
modulelist=com.p6spy.engine.spy.P6SpyFactory driverlist=com.mysql.cj.jdbc.Driver
Need tööriistad aitavad tuvastada aeglaseid päringuid ja optimeerida jõudlust ilma koodiloogikat muutmata.
38) Kuidas saab JDBC-d mitmelõimelises keskkonnas turvaliselt kasutada?
JDBC-ühendused on mitte niidikindel, seega peaks iga niit säilitama oma Connection, Statementja ResultSet.
Parimad tavad:
- Kasutama ühenduste koondamine (nt HikariCP).
- Vältige jagamist
Connectionobjektid lõimede vahel. - Sulgege kõik ressursid a-s
finallyblokeeri või proovi ressurssidega. - Kasutage sünkroniseerimist ainult jagatud objektide, mitte JDBC-toimingute jaoks.
Näide:
Iga niit laenab ühenduse basseinist:
Connection conn = dataSource.getConnection();
Kui see on valmis, tagastatakse see turvaliselt. See tagab lõimede isolatsiooni ja andmete järjepidevuse.
39) Kuidas on JDBC integreeritud Spring Frameworki või Spring Bootiga?
Spring pakub sujuvat JDBC integratsiooni JdbcTemple, lihtsustades mallipõhist koodi.
See tegeleb ühenduste haldamise, erandite tõlkimise ja ressursside puhastamisega automaatselt.
Näide:
@Autowired
private JdbcTemplate jdbcTemplate;
public List<Employee> getEmployees() {
return jdbcTemplate.query("SELECT * FROM employee",
(rs, rowNum) -> new Employee(rs.getInt("id"), rs.getString("name")));
}
Eelised:
- Käsiraamatut pole
try-catch-finallyplokid. - Järjepidev erandite käsitlemine.
- Sisseehitatud tehingute haldamine.
Spring Boot konfigureerib end automaatselt DataSource ja integreerib ühenduste koondamise tootmisvalmiduse tagamiseks.
40) Millised on JDBC Connection objekti erinevad olekud selle elutsükli jooksul?
JDBC-ühendus läbib oma elutsükli jooksul mitu olekut:
| riik | Kirjeldus |
|---|---|
| Initsialiseeritud | Ühendusobjekt on loodud, aga pole veel ühendatud. |
| avatud | Andmebaasiga ühendus loodud. |
| Tehingus | SQL-operatsioonide sooritamine tehingu sees. |
| Kinnitatud/tagasi võetud | Tehing lõpule viidud. |
| suletud | Ühendus basseiniga vabastati või katkestati. |
Näidisvoog:
Connection conn = ds.getConnection(); conn.setAutoCommit(false); // execute queries conn.commit(); conn.close();
Nende olekute õige haldamine tagab stabiilsuse, hoiab ära lekked ja säilitab ettevõtte süsteemide tehingute terviklikkuse.
41) Millised on neli JDBC draiveritüüpi ja kuidas need erinevad jõudluse ja kaasaskantavuse poolest?
JDBC defineerib neli draiveritüüpi, mis erinevad selle poolest, kuidas nad JDBC-kõnesid andmebaasispetsiifilisteks operatsioonideks tõlgivad.
| KASUTUSALA | Nimi | Kirjeldus | Kaasaskantavus | jõudlus |
|---|---|---|---|---|
| kirjuta 1 | JDBC-ODBC sild | Teisendab JDBC-kõned ODBC-kõnedeks | Madal | Madal |
| kirjuta 2 | Natiivne API | Kasutab müüjaspetsiifilisi natiivteegid | Keskmine | Keskmine |
| kirjuta 3 | Network protokolli | Kasutab tõlkimiseks vahetarkvara | Suur | Mõõdukas |
| kirjuta 4 | Õhuke draiver | Puhas Java juht suhtleb otse andmebaasiga | Väga kõrge | Väga kõrge |
Kokkuvõte: 4. tüüpi draiverid on tänapäeval kõige eelistatumad oma puhtuse tõttu Java olemus, kõrge jõudlus ja platvormist sõltumatus. Vanemaid tüüpe kasutatakse tänapäevastes rakendustes harva.
42) Mis on tehingute eraldamine JDBC-s ja millised on selle erinevad tasemed?
Tehingute isolatsioon määratleb, kuidas andmebaasi tehingud üksteisega suhtlevad. JDBC toetab standardseid SQL-i isolatsioonitasemeid, mis määravad andmete nähtavuse samaaegsete tehingute vahel.
| Isolatsiooni tase | Hoiab ära | Kirjeldus |
|---|---|---|
| LOETUD_UNCOMMITTED | Räpased lugemised | Loeb kinnitamata andmeid |
| LUETUD_LOETUD | Räpased lugemised | Vaikimisi paljudes andmebaasides |
| KORDUV_LOETUD | Kordumatu lugemine | Hoiab ära muudatused tehingu ajal |
| SERIALISEERITUD | Fantoom loeb | Kõige rangem, tagab täieliku isolatsiooni |
Näide:
conn.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
Põhipunkt: Suurem isolatsioonitase suurendab andmete järjepidevust, kuid võib vähendada samaaegsuse jõudlust, seega tuleb see valida vastavalt ettevõtte vajadustele.
43) Kuidas JDBC toetab hajutatud (XA) tehinguid?
JDBC toetab hajutatud tehinguid läbi XA protokoll, mis koordineerib ühe tehingu raames mitut andmebaasi või süsteemi.
Seda käsitletakse järgmiste meetodite abil:
javax.sql.XADataSourceühenduste koondamiseks ja hajutatud juhtimiseks.- Tehingujuht (nt Atomikos, Bitronix või Springi JTA).
Töövoo näide:
- Alusta globaalset tehingut.
- Juurdepääs mitmele andmebaasile.
- Valmista ette ja kinnita kahefaasilise kinnitamisprotokolli (2PC) abil.
Kasutusjuhtum: Pangaülekanded või ettevõtte rakendused, mis vajavad ACID-vastavust mitmes süsteemis.
Kuigi XA tehingud on võimsad, on need keerulised ja vajavad ummikseisude vältimiseks hoolikat haldamist.
44) Kuidas te JDBC jõudlust tootmissüsteemis profiilite?
JDBC jõudlusprofiilide koostamine tuvastab aeglased päringud ja kitsaskohad.
Tööriistad ja tehnikad:
- P6Spy või andmeallika puhverserver SQL-lausete logimiseks ja analüüsimiseks.
- JVisualVM / Java Lennuregistraator (JFR) ühenduse kasutamise jälgimiseks.
- Andmebaasi tasemel tööriistad nagu MySQL'S
EXPLAINprofiilipäringute tegemiseks. - Mõõdikute kogu kasutades Prometheuse + Grafana armatuurlaudu.
Parimad tavad:
- Iga päringu täitmisaja logimine.
- Tuvastage pikaajalised tehingud.
- Indeksite ja päringute kujunduse häälestamine.
Profileerimine tagab rakenduste optimaalse andmebaasi interaktsiooni suure koormuse korral.
45) Mis on JDBC mälulekete levinumad põhjused ja kuidas neid saab vältida?
Mälulekked tekivad siis, kui JDBC ressursid, näiteks Connection, Statementvõi ResultSet pole korralikult suletud.
Üldised põhjused:
- Puuduvad
close()kõned. - Puhastamist katkestavad erandid.
- Halvasti konfigureeritud ühendusbasseinid.
- Mälus hoitavad suured töötlemata tulemuskomplektid.
ennetamine:
- Kasutage alati proovi-ressurssidega plokid.
- Seadistamine maksimaalne jõudeaeg ja maksimaalne eluiga basseinides.
- Vältige hoidmist
ResultSetviited globaalselt.
Näide:
try (Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement()) {
// Execute queries
}
Nõuetekohane puhastamine tagab stabiilse mälukasutuse ja kõrge käideldavuse pikalt töötavates rakendustes.
46) Kuidas saab JDBC-d optimeerida mikroteenuste või pilvepõhiste keskkondade jaoks?
Mikroteenustes ja pilvekeskkondades on kerge ja vastupidav JDBC kasutamine ülioluline.
Optimeerimised:
- Kasutama HikariCP kerge ühenduste koondamiseks.
- Eelista kodakondsuseta JDBC seansid.
- Finantsvõimendus loe koopiaid ja vahemällu salvestamine (nt Redis).
- Täitma kaitselülitid (Resilience4j) andmebaasi rikete taastamiseks.
- Kasutama ühenduse ajalõpp ja jõudeolekust väljatõstmine parameetrid.
Konfiguratsiooni näide:
config.setConnectionTimeout(3000); config.setIdleTimeout(60000);
Eesmärk: Tagage, et JDBC-ühendused jäävad konteinerite ja hajusüsteemide vahel tõhusaks, rikketaluvaks ja automaatselt skaleeritavaks.
47) Kuidas JDBC-s andmebaasiühenduse tõrkeid korrektselt käsitleda?
Hajutatud keskkondades on ühenduse tõrked vältimatud; JDBC peaks nendega toime tulema ilma rakendust krahhita.
Parimad tavad:
- Kasuta ühenduse uuesti proovimist eksponentsiaalse tagasilöögiga.
- Püüa SQLTransientConnectionException mööduvate vigade korral.
- Varuloogika rakendamine või proovige järjekordi uuesti.
- Kasutage andmeallika ühenduste kogumeid automaatseks taastamiseks.
Näide:
for (int i = 0; i < 3; i++) {
try (Connection conn = ds.getConnection()) {
break; // success
} catch (SQLTransientConnectionException e) {
Thread.sleep(1000 * (i + 1)); // exponential retry
}
}
See tagab vastupidavuse ajutiste andmebaasikatkestuste ajal.
48) Mis vahe on JDBC-s commit'il, rollback'il ja savepoint'il?
| Mõiste | Kirjeldus | Näide |
|---|---|---|
| toime panema | Lõpetab tehingu jäädavalt | conn.commit() |
| Tagastus | Revsalvestab kõik muudatused pärast viimast muudatuste tegemist | conn.rollback() |
| Salvestuspunkt | Võimaldab osalist tagasipöördumist kindlasse punkti | Savepoint sp = conn.setSavepoint("sp1") |
Näide:
conn.setAutoCommit(false); Savepoint sp = conn.setSavepoint(); conn.rollback(sp); conn.commit();
Kasutusjuhtum: Salvestuspunktid on üliolulised suurte tehingute puhul, kus on vaja osalist tagasivõtmist ilma kogu järjestust tagasi pööramata.
49) Kuidas JDBC andmebaasi metaandmeid käsitleb ja miks see kasulik on?
JDBC pakub metaandmeid selle kaudu DatabaseMetaData ja ResultSetMetaData liidesed.
Andmebaasi metaandmed: Pakub andmebaasi tasemel teavet, nagu toetatud SQL-tüübid, draiveri versioon ja skeem.
TulemusteSetMetaData: Pakub tulemuste komplekti tasemel üksikasju, näiteks veerunimesid ja andmetüüpe.
Näide:
DatabaseMetaData dbmd = conn.getMetaData(); System.out.println(dbmd.getDatabaseProductName());
Kasutusalad:
- Dünaamiline päringute koostamine.
- Skeemi uurimise tööriistad.
- Andmebaasi ühilduvuse kontrollid.
Metaandmed muudavad JDBC kohandatavaks rakenduste jaoks, mis peavad dünaamiliselt suhtlema mitme andmebaasisüsteemiga.
50) Millised on JDBC kasutamise parimad tavad ettevõtte tasemel rakendustes?
Usaldusväärsuse, skaleeritavuse ja hooldatavuse tagamiseks järgige neid JDBC parimaid tavasid:
- Alati lähedal
Connection,StatementjaResultSet. - Kasutama ühenduste koondamine ja Andmeallikas asemel
DriverManager. - Eelista Ettevalmistatud avaldus parameetritega päringute jaoks.
- Täitma tehingute juhtimine ettevaatlikult ja nõuetekohase isolatsiooniga.
- Väldi suuri otsingutulemuste mahte; kasuta suuremahuliste tulemuste saamiseks lehekülgi.
- Kasutama logimine ja jälgimine (nt P6Spy).
- Optimeeri partiitoiminguid ja vahemällu salvestamist.
- Eranditega saab sujuvalt ümber käia, kasutades korduskatseid ja varuloogikat.
Tulemus: Nende põhimõtete järgimine tagab JDBC-rakenduste töökindluse, jõudluse ja turvalisuse ka tootmiskeskkondades.
🔍 Parimad JDBC intervjuuküsimused koos reaalsete stsenaariumide ja strateegiliste vastustega
Allpool on 10 hoolikalt koostatud JDBC intervjuuküsimust koos intervjueerijate ootuste ja tugevate näidetega vastustest.
1) Mis on JDBC ja miks see on oluline? Java-põhised rakendused?
Kandidaadilt oodatakse: JDBC põhieesmärgi ja selle rolli mõistmine andmebaaside ühenduvuses.
Näite vastus: „JDBC on Java API, mis võimaldab Java rakenduste suhtlemine relatsioonandmebaasidega standardsete liideste kaudu. See on oluline, sest see pakub järjepidevat viisi päringute teostamiseks, andmete hankimiseks ja tehingute haldamiseks erinevates andmebaasisüsteemides.
2) Kas saaksite selgitada JDBC draiverite rolli ja erinevat tüüpi draivereid?
Kandidaadilt oodatakse: Teadmised neljast draiveritüübist ja nende kasutusjuhtudest.
Näite vastus: „JDBC draiverid on rakendused, mis võimaldavad suhtlust Java rakendused ja andmebaasid. Neid on neli tüüpi: tüüp 1 (JDBC-ODBC sild), tüüp 2 (natiivne API), tüüp 3 (võrguprotokoll) ja tüüp 4 (puhas Java draiver). Tänapäeval kasutatakse kõige sagedamini 4. tüüpi draivereid, kuna need on platvormist sõltumatud ja pakuvad paremat jõudlust.
3) Kuidas hallata andmebaasiühendusi suuremahulises rakenduses tõhusalt?
Kandidaadilt oodatakse: Teadlikkus ühenduste koondamise ja jõudluse optimeerimise kohta.
Näite vastus: „Ühenduste tõhusaks haldamiseks toetun ühenduste koondamise raamistikele nagu HikariCP või Apache DBCP. Need ühendused haldavad aktiivsete ühenduste komplekti, mis vähendab uute ühenduste korduva loomise kulusid ja parandab jõudlust suure koormusega keskkondades.“
4) Kirjeldage lause (Statement), ettevalmistatud lause (PreparedStatement) ja kutsutava lause (CallableStatement) erinevust.
Kandidaadilt oodatakse: Avalduste tüüpide mõistmine ja millal neid kasutada.
Näite vastus: "Statement kasutatakse lihtsate staatiliste SQL-päringute jaoks. PreparedStatement kasutatakse parameetritega päringute jaoks ja see aitab vältida SQL-i süstimist. CallableStatement kasutatakse salvestatud protseduuride käivitamiseks. Õige tüübi valimine parandab nii jõudlust kui ka turvalisust.
5) Räägi mulle ajast, mil sa optimeerisid JDBC jõudlust rakenduses.
Kandidaadilt oodatakse: Reaalne stsenaarium, mis näitab initsiatiivi ja analüüsioskust.
Näite vastus: „Oma eelmises rollis märkasin, et teatud päringud võtsid korduvate ühenduste loomise tõttu liiga kaua aega. Võtsin kasutusele ühenduste kogumi ja asendasin liit-SQL-i…“ PreparedStatement objektid. See mitte ainult ei parandanud jõudlust, vaid tugevdas ka turvalisust.”
6) Kuidas vältida SQL-süstimist JDBC kasutamisel?
Kandidaadilt oodatakse: Teadmised parimatest turvapraktikatest.
Näite vastus: "Kõige usaldusväärsem meetod on kasutada PreparedStatement parameetritega päringutega. See tagab, et kasutaja sisendeid käsitletakse andmetena, mitte käivitatava SQL-ina. Lisaks valideerin sisendandmeid ja väldin võimaluse korral dünaamilise SQL-i loomist.
7) Kirjeldage olukorda, kus pidite JDBC-ühenduse tõrkeotsingut tegema. Milliseid samme te astusite?
Kandidaadilt oodatakse: Loogiline veaotsingu protsess ja probleemide lahendamise oskused.
Näite vastus: „Minu eelmisel ametikohal hakkas üks tootmisrakendus andmebaasiga ühenduse loomisel nurjuma. Kontrollisin võrgu konfiguratsiooni, valideerisin volitused ja vaatasin üle JDBC URL-i vormingu. Pärast logide uurimist leidsin valesti konfigureeritud pordi, mis oli andmebaasi migreerimise ajal muutunud. URL-i parandamine lahendas probleemi.“
8) Kuidas JDBC-s tehinguid hallata ja miks need on olulised?
Kandidaadilt oodatakse: Mõistmine commit, rollbackja ACID-nõuetele vastavus.
Näite vastus: „JDBC võimaldab rakendustel tehinguid hallata, kasutades Connection objekt. Ma saan automaatse kinnitamise keelata, käivitada mitu toimingut ja seejärel kutsuda commit or rollback olenevalt tulemusest. Tehingute haldus tagab andmete terviklikkuse ja toetab ACID-omadusi.
9) Räägi mulle keerulisest andmebaasiga seotud probleemist, mille lahendasid JDBC abil.
Kandidaadilt oodatakse: Kogemus silumise, optimeerimise või keeruka SQL-i käsitlemisega.
Näite vastus: „Eelmisel töökohal töötasin funktsiooni kallal, mis nõudis suurte andmekogumite hulgilisamist. Esialgne rakendus lisas kirjeid ükshaaval, mis tekitas jõudlusprobleeme. Parandasin loogikat, kasutades partiitöötlust koos…“ PreparedStatement, mis vähendas oluliselt täitmisaega."
10) Kuidas toimiksite stsenaariumi korral, kus mitu projekti vajavad samaaegseid JDBC täiustusi lühikeste tähtaegade piires?
Kandidaadilt oodatakse: Ajaplaneerimine, prioriteetide seadmine ja suhtlemine.
Näite vastus: „Alustaksin iga täiustuse kiireloomulisuse, mõju ja keerukuse hindamisega. Edastaksin ajakavad sidusrühmadele selgelt, jagaksin ülesanded hallatavateks segmentideks ja tegeleksin kõigepealt kõige kriitilisemate punktidega. Vajadusel teeksin meeskonnaliikmetega koostööd, et tagada õigeaegne valmimine, säilitades samal ajal koodi kvaliteedi.“

