50 najpopularniejszych pytań i odpowiedzi podczas rozmów kwalifikacyjnych JDBC (2025)

Oto pytania i odpowiedzi dotyczące rozmów kwalifikacyjnych Java Database Connectivity (JDBC) zarówno dla nowicjuszy, jak i doświadczonych kandydatów, którzy chcą zdobyć wymarzoną pracę.

Bezpłatne pobieranie plików PDF: Pytania do wywiadu JDBC


1) Co to jest JDBC?

JDBC oznacza łączność z bazą danych Java. JDBC to interfejs API języka Java, który komunikuje się z bazą danych i wykonuje zapytanie SQL.


2) Co to jest sterownik JDBC i ile sterowników JDBC jest dostępnych?

Sterownik JDBC zawiera klasy i interfejsy ułatwiające pracę aplikacji i baz danych w języku Java.

Istnieją 4 typy sterowników JDBC.

  1. Sterownik typu 1 lub sterownik mostu JDBC-ODBC.
  2. Sterownik typu 2 lub natywny-API, częściowo sterownik Java.
  3. Sterownik typu 3 lub protokół sieciowy, czysty sterownik Java.
  4. Sterownik typu 4 lub protokół natywny, czysty sterownik Java.

3) Jak mogę się połączyć MySQL lub Oracle z Javą?

//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; }

Wyjaśnienie kodu

Class.forName tworzy instancję sterownika JDBC i rejestruje się w DriverManager.

getConnection() zawsze nawiązuje połączenie z bazą danych.

Musimy utworzyć obiekt Statement z powyższego obiektu połączenia. Polecenie zwróci obiekt zestawu wyników. ResultSet.next() oznacza, że zestaw wyników nadal zwraca wiersz.


4) Który sterownik JDBC jest najszybszy?

Sterownik typu 4 lub protokół natywny, czysty sterownik Java, jest najszybszym sterownikiem.


5) Jakie są komponenty API JDBC?

Istnieją cztery typy komponentów

  1. API JDBC
  2. Menedżer sterowników JDBC
  3. Zestaw testów JDBC
  4. Most JDBC-ODBC
Pytania do rozmowy kwalifikacyjnej JDBC
Pytania do rozmowy kwalifikacyjnej JDBC

6) Jakie są instrukcje JDBC?

Istnieją 3 typy instrukcji JDBC, jak podano poniżej:

  1. Zestawienie sprzedaży:To zostanie wykonane SQL zapytanie (statyczne zapytanie SQL) do bazy danych.
  2. Przygotowane oświadczenie: Używane, gdy chcemy wielokrotnie wykonać instrukcję SQL. Dane wejściowe są dynamiczne i pobierane w czasie wykonywania.
  3. Wywoływana instrukcja: Używane, gdy chcemy wykonać procedury składowane.

7) Jak możemy wykonać procedury składowane?

Procedury składowane można wykonać za pomocą instrukcji JDBCcallable. Oto kod.

Connection conn = null;

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

callStmt.setString(1, "abcdefg");


8) Jakie są zalety używania „PreparedStatement” w Javie?

Przygotowana instrukcja służy do wielokrotnego wykonywania tych samych instrukcji SQL. Przygotowana instrukcja jest kompilowana tylko raz, mimo że użyła „n” liczbę razy


9) Co to jest zestaw wyników?

Interfejs java.sql.ResultSet oznacza zbiór wyników zapytania SQL. Oznacza to, że kursor wskazuje wiersz tabeli; wskazuje przed pierwszym wierszem.


10) Jakie są typy ResultSet?

Dostępne są trzy typy zestawu wyników. Jeśli nie zadeklarujemy żadnego ResultSet, oznacza to, że wywołujemy TYPE_FORWARD_ONLY

  1. TYPE_FORWARD_ONLY: kursor może poruszać się tylko do przodu.
  2. TYPE_SCROLL_INSENSITIVE: kursor może poruszać się do przodu i do tyłu, ale nie jest wrażliwy.
  3. TYPE_SCROLL_SENSITIVE: kursor może poruszać się do przodu i do tyłu, ale jest wrażliwy

11) Wyjaśnij różnicę między RowSet a ResultSet w JDBC?

W połączeniu uchwytu ResultSet z bazą danych nie możemy utworzyć obiektu Result jako obiektu serializowanego.

Z powodu powyższego problemu nie możemy przesłać zestawu wyników przez sieć.

RowSet rozszerza interfejs ResultSet, więc przechowuje wszystkie metody z ResultSet. RowSet jest serializowany.

Możemy zatem przekazać zestaw wierszy z jednej klasy do drugiej, ponieważ nie ma on połączenia z bazą danych.


12) Dlaczego miałbyś używać setAutoCommit(false) w JDBC?

Jeśli chcesz wyłączyć automatyczne zatwierdzanie, ustaw połączenie.setAutoCommit(false)


13) Czym są ostrzeżenia bazy danych w JDBC i jak możemy sobie poradzić z ostrzeżeniami bazy danych w JDBC?

Ostrzeżenie SQL lub ostrzeżenie bazy danych jest podklasą klasy SQLException. Możemy sobie z tym poradzić, używając metody getWarnings() w połączeniach, instrukcjach i zestawie wyników


14) Czy mogę uzyskać zerowy zestaw wyników?

Nie, nie możemy uzyskać zerowego zestawu wyników. ResultSet.next() może zwrócić wartość null, jeśli następny rekord nie zawiera wiersza.


15) Co rozumiesz przez metadane i dlaczego z nich korzystamy?

Metadane oznaczają dane lub informacje o innych danych. Używamy metadanych, aby uzyskać wersję produktu bazodanowego, nazwę sterownika, całkowitą liczbę tabel i widoków.


16) Jaka jest różnica pomiędzy wykonaniem, wykonaniem zapytania i wykonaniem aktualizacji w JDBC?

wykonaj(): można jej użyć do dowolnego rodzaju zapytania SQL.

wykonywaniaQuery() : można jej użyć do zapytania wybierającego.

wykonywaniaUpdate(): można jej użyć do zmiany/aktualizacji tabeli.


17) Co to jest łączenie połączeń z bazą danych? Zalety korzystania z puli połączeń?

Pule połączeń oznaczają, że połączenia będą przechowywane w pamięci podręcznej i będziemy mogli je ponownie wykorzystać w przyszłości.

Korzyść:

  1. To jest szybsze
  2. Pule połączeń stają się łatwiejsze do diagnozowania i analizowania połączenia z bazą danych.

18) Jaka jest funkcja klasy DriverManager?

Jest to interfejs pomiędzy użytkownikiem a sterownikami. DriverManager śledzi całą aktywność pomiędzy bazą danych a odpowiednim sterownikiem.


19) Jakie jest znaczenie aktualizacji wsadowych?

Aktualizacje wsadowe oznaczają jednoczesne wykonanie zestawu/grupy zapytań SQL.

Aktualizacji wsadowych można używać tylko do wstawiania, aktualizowania i usuwania, ale nie do zapytań wybierających.


20) Ile pakietów jest dostępnych w API JDBC?

W interfejsie API JDBC dostępne są dwa typy pakietów

  1. Java.sql
  2. javax.sql

21) Jaki jest typ zwracany przez wykonanie, wykonanieQuery i wykonanieUpdate?

Typ zwracanego wykonania to Boolean

Typ zwracany przez wykonanieQuery to obiekt ResultSet

Typ zwracany przez wykonanieUpdate to int


22) Indeks zestawu wyników Zaczyna się od 0 czy 1?

Indeks zestawu wyników zaczyna się od 1.


23) Jaka jest rola Class.forName podczas ładowania sterowników?

Class.forName tworzy instancję sterownika JDBC i rejestruje się w DriverManager.


24) Most JDBC-ODBC jest wielowątkowy czy nie?

Nie, most JDBC-ODBC używa zsynchronizowanych metod do serializacji wszystkich wywołań wykonywanych do ODBC.


25) Który interfejs obsługuje zarządzanie transakcjami w JDBC?

Interfejs połączenia obsługuje zarządzanie transakcjami w JDBC. Zapewnia metodę zatwierdzania (), wycofywania () itp.


26) Dlaczego pojawia się błąd „Brak odpowiedniego sterownika”?

Brak odpowiedniego sterownika” ma miejsce, gdy wywołujemy metodę DriverManager.getConnection,

może to nastąpić z następujących powodów:

  • nie można załadować dokładnych sterowników JDBC przed wywołaniem metody getConnection.
  • Może to być nieprawidłowy lub błędny adres URL JDBC.

27) Przygotowane wyciągi są szybsze. Dlaczego?

Wykonanie przygotowanej instrukcji jest szybsze niż wykonanie bezpośrednie, ponieważ instrukcja jest kompilowana tylko raz. Przygotowane instrukcje i sterownik JDBC są ze sobą łączone podczas wykonywania i nie ma żadnych narzutów na połączenie.


28) Czy można połączyć się z wieloma bazami danych? Czy za pomocą pojedynczej instrukcji możemy zaktualizować lub wyodrębnić dane z dwóch, trzech lub wielu baz danych?

Tak, możliwe jest połączenie się z wieloma bazami danych jednocześnie, ale zależy to od konkretnego sterownika.

Aby zaktualizować i wyodrębnić dane z różnych baz danych, możemy użyć pojedynczej instrukcji. Potrzebujemy jednak oprogramowania pośredniczącego do obsługi wielu baz danych lub pojedynczej bazy danych.


29) Powiedz mi różnicę między setMaxRows(int) a SetFetchSize(int)?

setMaxRows(int) UstawFetchSize(int)?
Określa, ile wierszy może zawierać jednocześnie zestaw wyników Określa liczbę wierszy, które zostaną odczytane z bazy danych.

30) Opowiedz mi o znakach specjalnych?

Znak specjalny jest poprzedzony znakiem ucieczki. Przykład -

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

31) Co oznacza „brudny odczyt” w bazie danych?

Brudny odczyt oznacza „odczytaj wartość, która może być prawidłowa lub niepoprawna”.


32) Co rozumiesz przez zatwierdzenia dwufazowe?

W procesie transakcji rozproszonych stosowane jest zatwierdzanie dwufazowe. Jeśli wykonywana jest jakakolwiek transakcja, będzie to miało wpływ na wiele baz danych. Zatwierdzenia dwufazowe zostaną użyte do synchronizacji wszystkich baz danych.


33) Ile systemów blokujących jest w JDBC?

W JDBC dostępne są dwa rodzaje blokad, dzięki którym możemy obsłużyć więcej niż jednego użytkownika.

Jeśli dwóch użytkowników przegląda ten sam rekord, blokada nie jest stosowana. Jeśli jeden użytkownik aktualizuje rekord, a drugi również aktualizuje ten sam rekord, wówczas zastosujemy blokadę.

  1. Optymistyczne blokowanie: zablokuje rekord tylko wtedy, gdy będziemy „aktualizować”.
  2. Blokowanie pesymistyczne: zablokuje rekord z możliwością „wyboru”, aby wyświetlić, zaktualizować i zatwierdzić czas.

34) Jakie są wyjątki w JDBC?

W JDBC istnieją cztery typy wyjątków.

  1. wyjątek BatchUpdate
  2. Obcięcie danych
  3. Wyjątek SQL
  4. Ostrzeżenie SQL

35) Podaj kroki, aby połączyć się z bazą danych za pomocą JDBC?

Istnieją dwa sposoby połączenia bazy danych za pomocą JDBC

  1. Korzystanie z DriverManagera:

Załaduje klasę sterownika za pomocą class.forName(klasa sterownika) i Class.forName().

Po załadowaniu przekaże kontrolę do DriverManager.

DriverManager.getConnection() utworzy połączenie umożliwiające dostęp do bazy danych.

  1. Korzystanie ze źródła danych:

W przypadku DataSource nie ma potrzeby używania DriverManager z pomocą JNDI. Wyszuka on DataSource z serwera Naming Service. Metoda DataSource.getConnection() zwróci obiekt Connection do bazy danych.


36) Wyjaśnij architekturę JDBC?

Interfejs API JDBC obsługuje zarówno modele dwu-, jak i trzy-warstwowe bazy danych.

W modelu dwuwarstwowym aplikacja Java współdziała ze źródłem danych

Architektura dwuwarstwowa JDBC

W modelu trójwarstwowym polecenia są przekierowywane do „średniego poziomu” usług. Następnie polecenia wysyłane są do źródła danych.

Architektura dwuwarstwowa JDBC


37) Jakie nowe funkcje są dostępne w JDBC 4.0?

Nowe funkcje to

  • Automatyczne ładowanie według klasy sterownika JDBC
  • Ulepszone zarządzanie połączeniami
  • Włączono identyfikator wiersza SQL
  • Zbiór danych zaimplementowany przez SQL przy użyciu adnotacji
  • Ulepszenia obsługi wyjątków SQL
  • Obsługa SQL XML pliki

38) Jakie pakiety są używane w JDBC?

W JDBC używanych jest 8 pakietów –

  1. sql.Driver
  2. Przyłącze
  3. Zestawienie sprzedaży
  4. Przygotowane oświadczenie
  5. Instrukcja wywoływana
  6. Zestaw wyników
  7. Zestaw wynikówMetaData
  8. Baza danychMetaDane

39) Ile zestawów wierszy jest dostępnych w JDBC?

Dostępne są dwa typy zestawów wierszy:

  1. połączony – Połączony obiekt RowSet natychmiast łączy się z bazą danych. Jeśli aplikacja zakończy działanie, podłączony obiekt RowSet również zakończy działanie.
  2. Bezładny – Rozłączony obiekt RowSet łączy się z bazą danych po wykonaniu wymaganego zapytania.

40) Jakie jest znaczenie połączenia?

Interfejs połączenia składa się z metod interakcji z bazą danych.


41) Wyjaśnij punkt zapisu JDBC?

Punkt zapisu reprezentuje punkt, do którego można wycofać bieżącą transakcję. Zamiast wycofywać wszystkie zmiany, może wycofać tylko niektóre z nich.


42) Wymień zalety korzystania z DataSource?

Źródło danych dzieli pracę pomiędzy administratorem i programistą/programistą.

Administrator tworzy obiekt DataSource i łączy go z rejestrem JNDI. Programista/deweloper pobiera obiekt DataSource z rejestru. Następnie nawiązuje on połączenie z bazą danych.


43) Jaki jest powód, dla którego potrzebujemy zestawu JdbcRowSet, takiego jak opakowanie wokół zestawu wyników?

Możemy użyć obiektu ResultSet jako komponentu JavaBeans.

  • Zestaw JdbcRowSet może być również używany jako komponent JavaBeans. Dlatego można go utworzyć i skonfigurować w czasie projektowania lub kompilacji, a następnie wykonać w czasie wykonywania.
  • Wszystkie obiekty jdbcRowSet można przewijać i aktualizować.

44) Na ile sposobów możemy przeglądać zestaw wyników?

Istnieją dwa sposoby przeglądania zestawu wyników

  1. kolumna
  2. indeks kolumny.

Przykład: getInt(String nazwakolumny), getInt(intkolumnaIndex)


45) Na ile sposobów można zaktualizować zestaw wyników?

Poniższe metody pomagają zaktualizować zestaw wyników

  • aktualizacjaWiersz()
  • usuńwiersz()
  • odświeżwiersz()
  • anulujRowUpdates()
  • wstawwiersz()

46) Dlaczego powinniśmy zamykać połączenia z bazami danych w Javie?

Zgodnie z najlepszą praktyką musimy zamknąć zestaw wyników, instrukcję i połączenie. Jeśli połączenie pochodzi z puli, po zamknięciu połączenie jest odsyłane do puli w celu ponownego wykorzystania. Robimy to w bloku wreszcie{}, ponieważ jeśli wystąpi jakiś wyjątek, nadal mamy szansę to zamknąć.


47) Dlaczego używamy typów danych typu blob w JDBC?

Służą do przechowywania dużej ilości danych w bazie danych, takich jak obrazy, filmy itp.


48) Jak ustawić atrybut Concurrency w ResultSet?

Istnieją dwa poziomy współbieżności

  1. CONCUR_READ_ONLY – służy tylko do czytania.
  2. CONCUR_UPDATABLE - Służy zarówno do odczytu, jak i aktualizacji.

49) Jaka jest różnica pomiędzy kursorami bazy danych klienta i serwera?

Kursor po stronie serwera oznacza, że ​​dane i wyniki są zapisywane na serwerze. Dopiero wtedy, gdy żądane dane zostaną przesłane do klienta.

Kursor po stronie klienta oznacza wszystkie dane wysłane do lokalizacji klienta.


50) Jak wstawiać obrazy do bazy danych za pomocą JDBC?

Obrazy w bazie danych wykorzystujące typ danych BLOB, przy czym obraz jest przechowywany jako strumień bajtów. Poniższy kod pokazuje, jak wstawić obraz do bazy danych.

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

Te pytania podczas rozmowy kwalifikacyjnej pomogą również w Twoim życiu (ustach)

Udziały

Komentarze 2

  1. bardzo przydatne dla uczniów……..

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *