top 25 jdbc interview questions
Ten samouczek zawiera często zadawane pytania do wywiadu JDBC i odpowiedzi wraz z wyjaśnieniami, które pomogą Ci przygotować się do rozmowy:
w Przetwarzanie wsadowe i procedura składowana JDBC samouczek Seria samouczków JDBC , nauczyliśmy się metod przetwarzania wsadowego w Javie przy użyciu sterownika JDBC, a także nauczyliśmy się tworzyć procedury składowane i wywoływać je z programu Java.
JDBC jest powszechnie używanym skrótem języka Java Database Connectivity. Korzystając z JDBC, możemy wchodzić w interakcje z różnymi typami relacyjnych baz danych, takich jak Oracle, MySQL, MS Access itp.
Ten artykuł pomoże ci złamać wywiad JDBC. Wyjaśniliśmy tutaj wszystkie ważne koncepcje JDBC.
Często zadawane pytania do wywiadów JDBC
Pytanie 1) Co to jest JDBC?
Odpowiedź: Java Database Connectivity jest nieoficjalnie znana jako JDBC. Służy do wykonywania operacji bazodanowych w Bazie Danych z poziomu aplikacji Java. Obsługuje interakcję z dowolnymi bazami danych, takimi jak Oracle, MySQL, MS Access itp.
P # 2) Jakie jest zastosowanie sterownika JDBC?
Odpowiedź: Jest to komponent oprogramowania i służy do interakcji aplikacji Java z bazą danych.
P # 3) Jakie są różne typy sterowników w JDBC?
Odpowiedź: Na rynku są dostępne 4 różne sterowniki JDBC.
Oni są:
- Typ I: JDBC - most ODBC
- Typ II: Natywne API - Half Java Driver
- Typ III: Protokół sieciowy - całkowicie sterownik Java
- Typ IV: Cienki sterownik - całkowicie Java Driver
Typ I: most JDBC-ODBC
Most JDBC-ODBC będzie działał jako interfejs między klientem a serwerem DB. Klient powinien umieścić w nim sterownik JDBC-ODBC. Baza danych powinna obsługiwać sterownik ODBC. Jeśli nie jesteśmy zainteresowani instalacją sterownika w systemie klienta, użyjemy tego sterownika.
Typ II: natywny interfejs API: połowa sterownika Java
Jest prawie jak sterownik JDBC-ODBC. Zamiast sterownika ODBC używamy tutaj natywnego API. Używane są biblioteki bazy danych po stronie klienta.
Typ III: Protokół sieciowy
Działa jak trójwarstwowe podejście do dostępu do bazy danych. Do połączenia z DB zostanie użyty serwer pośredni. Wywołania metody JDBC wysyłają dane do serwera pośredniego, a następnie serwer będzie komunikował się z DB.
Typ IV: cienki przetwornik
Jest całkowicie napisany w Javie. W sposób jawny konwertuje wywołania metod JDBC na protokół bazy danych specyficzny dla dostawcy. Obecnie sprzedawca bazy danych sam dostarcza tego typu sterownik dla swoich klientów. Dlatego programiści nie polegają na innych źródłach. Zapewnia wyższą wydajność niż inne sterowniki.
Pytanie 4) Jaki typ sterownika JDBC jest używany przez większość ludzi?
Odpowiedź: W większości aplikacji używany jest cienki sterownik typu IV. Jest rozwijany przez samego dostawcę bazy danych, więc programiści mogą z niego korzystać bezpośrednio, bez polegania na innych źródłach. Pozwala na prosty i łatwy rozwój. Zapewnia wyższą wydajność niż inne sterowniki.
P # 5) Jakie są typy architektury JDBC?
Odpowiedź: JDBC obsługuje 2 rodzaje modeli przetwarzania dostępu do bazy danych.
Oni są:
- Architektura dwuwarstwowa: Tutaj programy Java jawnie łączą się z DB. Nie potrzebujemy żadnego pośrednika, takiego jak serwer aplikacji, do łączenia się z bazą danych, z wyjątkiem sterownika JDBC. Jest również znany jako architektura klient-serwer.
- Architektura trójwarstwowa: Jest to całkowicie odwrotność architektury dwupoziomowej. Nie będzie bezpośredniej komunikacji między sterownikiem JDBC lub programem Java a bazą danych. Pośrednikiem między nimi jest serwer aplikacji. Program Java wyśle żądanie do serwera aplikacji, a serwer wyśle je i otrzyma odpowiedź do / z DB.
P # 6) Jakie są składniki JDBC?
Odpowiedź: W JDBC dostępne są 4 główne komponenty.
Oni są:
- JDBC API
- Menedżer sterowników JDBC
- JDBC Test Suite
- JDBC - most ODBC
P # 7) Jakie są kroki, aby połączyć się z JDBC?
Odpowiedź: Istnieje 6 podstawowych kroków, aby połączyć się z DB w Javie. Są one wymienione poniżej:
- Importuj pakiet
- Załaduj sterownik
- Nawiąż połączenie
- Stworzenie i wykonanie wyciągu
- Pobierz wyniki
- Zamknij połączenie
P # 8) Jakie typy danych są używane do przechowywania obrazu i pliku w tabeli bazy danych?
Odpowiedź:
- Typ danych BLOB służy do przechowywania obrazu w bazie danych. Możemy również przechowywać pliki wideo i audio w typie danych BLOB. Służy do przechowywania danych binarnych.
- Typ danych CLOB służy do przechowywania pliku w DB. Służy do przechowywania danych typu znakowego.
P # 9) Co to jest DriverManager w JDBC?
Odpowiedź: DriverManager to wbudowana klasa obecna w pakiecie java.sql. Będzie używany jako pośrednik między aplikacją Java a bazą danych, którą łączymy / używamy w naszym kodzie. W pierwszej kolejności musimy zarejestrować lub załadować sterownik za pomocą DriverManager. Wtedy sterownik będzie dostępny do użycia w aplikacji.
Główną funkcją DriverManagera jest załadowanie klasy sterownika bazy danych i utworzenie połączenia z bazą danych.
Istnieją 2 sposoby zarejestrowania lub załadowania sterownika:
- Class.forName ()
- DriverManager.registerDriver ()
P # 10) Jaka jest różnica między interfejsami Statement i PreparedStatement.
Odpowiedź: Poniższa tabela wyjaśnia różnice:
KOMUNIKAT | PRZYGOTOWANE OŚWIADCZENIE |
---|---|
Będzie używany głównie do wykonywania statycznych instrukcji SQL | Będzie używany głównie do wykonywania wstępnie skompilowanych instrukcji SQL |
Nie akceptuje parametrów w czasie wykonywania | Będzie akceptować różne parametry w czasie wykonywania |
Jego wydajność jest mniejsza w porównaniu z przygotowanym oświadczeniem | Jego wydajność jest wyższa niż Instrukcja, ponieważ wykonuje prekompilowane instrukcje SQL |
Jest odpowiedni do wykonywania instrukcji DDL, takich jak CREATE, DROP, ALTER i TRUNCATE | Jest odpowiedni do wykonywania instrukcji DML, takich jak INSERT, UPDATE i DELETE |
Nie można go używać do przechowywania ani pobierania obrazu i pliku w bazie danych | Może być używany do przechowywania lub pobierania obrazu i pliku w bazie danych |
Wymusza iniekcję SQL | Zapobiega iniekcji SQL |
Sugerowana lektura = >> JDBC PreparedStatement and Statement
Pytanie nr 11) Wyjaśnij różnicę między execute (), executeQuery () i executeUpdate ().
Odpowiedź:
executeQuery () | executeUpdate () | Wykonać() |
---|---|---|
Służy do wykonywania instrukcji SQL, które pobierają dane z bazy danych | Służy do wykonywania instrukcji SQL, które aktualizują lub modyfikują dane w bazie danych | Służy do wykonywania wszelkiego rodzaju instrukcji SQL |
Zwraca obiekt resultSet | Zwraca wartość całkowitą, która reprezentuje nie. dotkniętych rzędów | Zwraca wartość logiczną TRUE - zwraca obiekt resultSet FALSE - zwraca wartość int lub nic |
Służy do wykonywania tylko zapytania SELECT | Służy do wykonywania tylko zapytania innego niż SELECT | Służy do wykonywania zapytań SELECT i innych niż SELECT |
Q # 12) Jak wywołać procedury składowane w JDBC?
Odpowiedź: Procedury składowane SQL możemy wykonywać za pośrednictwem interfejsu CallableStatement. Obiekt CallableStatement można utworzyć za pomocą metody replaceCall () interfejsu Connection.
Pytanie nr 13) Co to jest interfejs ResultSet?
Odpowiedź: Interfejs ResultSet służy do przechowywania danych wyjściowych po wykonaniu zapytania SQL. Obiekt ResultSet utrzymuje kursor na danych wynikowych. Domyślnie kursor znajduje się przed pierwszym wierszem danych wynikowych. Możemy również przechodzić przez dane w obiektach zestawu wyników.
jak pisać przypadki testowe z wymagań
Składnia:
Interfejs instrukcji:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
Interfejs PreparedStatement:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
P # 14) Jakie są typy zestawów wyników?
Odpowiedź: W zestawie wyników są 3 typy. To są:
bash porównuje pliki linia po linii
- TYPE_FORWARD_ONLY: Jest to opcja domyślna. Kursor przesunie się od początku do końca.
- TYPE_SCROLL_INSENSITIVE: W tym typie kursor będzie się poruszał zarówno do przodu, jak i do tyłu. Zestaw danych zawiera dane, gdy zapytanie SQL zwraca dane.
- TYPE_SCROLL_SENSITIVE: Jest taki sam jak TYPE_SCROLL_INSENSITIVE, różnica polega na tym, że będzie miał zaktualizowane dane podczas iteracji obiektu resultset.
P # 15) Jakie są tryby współbieżności w zestawie wyników?
Odpowiedź: W zestawie wyników dostępne są 2 różne tryby współbieżności. Oni są:
- Zestaw wyników.CONCUR_READ_ONLY : Jest to domyślny tryb współbieżności. Dostępna jest opcja tylko do odczytu. Aktualizacja nie jest możliwa.
- Zestaw wyników.CONCUR_UPDATABLE: Aktualizacja jest możliwa.
P # 16) Jak sprawdzić, czy baza danych obsługuje tryb współbieżności?
Odpowiedź: Mamy do czynienia z metodą supportResultSetConcurrency (), która posłuży do sprawdzenia, czy dany typ i tryby współbieżności są obsługiwane przez bazę danych, czy nie.
Pytanie # 17) Czy możemy uzyskać dane konkretnego wiersza z zestawu wyników?
Uwaga: ResultSet zawiera dane zestawu wierszy
Odpowiedź: Tak, możemy pobrać dane konkretnego wiersza z resultSet za pomocą metody relative (). Przeniesie kursor do danego wiersza w przód lub w tył z bieżącego wiersza. Jeśli podano wartość dodatnią, przesunie się do przodu. Jeśli podano wartość ujemną, przesunie się w kierunku wstecznym.
P # 18) Jakie jest zastosowanie metod pobierających i ustawiających w zestawie wyników?
Odpowiedź:
Metody pobierania: Służą one do pobierania wartości określonej kolumny tabeli z zestawu wyników. Jako parametr należy przekazać wartość indeksu kolumny lub nazwę kolumny. Zwykle będziemy reprezentować metodę getter jako metody getXXX ().
Przykład:
- int getInt (string nazwa_kolumny): Służy do pobierania wartości określonej kolumny Index i typu danych int jako typu zwracanego.
Metody ustawiające: Możemy ustawić wartość w bazie danych za pomocą metod ustawiających ResultSet. Jest to podobne do metod pobierających, ale tutaj musimy przekazać wartości / dane dla określonej kolumny do wstawienia do bazy danych oraz wartość indeksu lub nazwę kolumny tej kolumny. Normalnie będziemy reprezentować metodę ustawiającą jako metody setXXX ().
Przykład:
- void setInt (int Column_Index, int Data_Value): Służy do wstawiania wartości określonego indeksu kolumny z wartością int.
P # 19) Jaki jest główny cel interfejsu ResultSetMetaData?
Odpowiedź: Ten interfejs zawiera więcej informacji o zestawie wyników. Każdy obiekt ResultSet został powiązany z jednym obiektem ResultSetMetaData.
Ten obiekt będzie zawierał szczegóły właściwości kolumn, takie jak typ danych kolumny, nazwa kolumny, liczba kolumn w tej tabeli, nazwa tabeli, nazwa schematu itp., Metoda getMetaData () obiektu ResultSet służy do tworzenia ResultSetMetaData obiektu.
Składnia:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
P # 20) Co to jest DatabaseMetaData?
Odpowiedź: Interfejs DatabaseMetaData dostarcza informacji o używanej przez nas Bazie Danych. Otrzymamy następujące informacje - DatabaseName, wersja bazy danych i tak dalej.
P # 21) Co to jest właściwość ACID?
Odpowiedź:
- A – Atomowość -> Jeśli wszystkie zapytania zostały wykonane pomyślnie, dane zostaną zatwierdzone, w przeciwnym razie nie zostaną zatwierdzone.
- C – Spójność -> Dane powinny być spójne po każdej transakcji.
- I – Izolacja -> Każda transakcja powinna być izolowana.
- D – Trwałość -> Jeśli transakcja została zatwierdzona raz, powinna być zawsze dostępna (jeśli nie nastąpiły żadne zmiany)
P # 22) Jak zmienić wartość trybu automatycznego zatwierdzania?
Odpowiedź: Domyślnie wartość AutoCommit to TRUE. Po wykonaniu instrukcji SQL zostanie ona zatwierdzona automatycznie. Używając metody setAutoCommit (), możemy zmienić wartość na AutoCommit.
P # 23) Jakie jest zastosowanie metod Commit i Rollback?
Odpowiedź:
Commit (), metoda: W Javie mamy metodę commit () do zatwierdzania danych. Po wykonaniu SQL możemy wywołać metodę commit.
Składnia: connectionobj.commit ();
Metoda Rollback (): Mamy metodę rollback () w Javie, aby przywrócić dane. Wycofywanie oznacza cofnięcie zmian. Jeśli któraś z instrukcji SQL nie powiedzie się, możemy wywołać metodę wycofania, aby cofnąć zmiany.
Składnia: connectionobj.rollback ();
P # 24) Co to jest punkt zapisu i jakie są metody, które mamy w JDBC dla punktu zapisu?
Odpowiedź: Punkt zapisu służy do tworzenia punktów kontrolnych w transakcji i pozwala nam na przywrócenie określonego punktu zapisu. Gdy transakcja zostanie zatwierdzona lub wycofana, punkt zapisu utworzony dla transakcji zostanie automatycznie zniszczony i stanie się nieważny.
Metody dla punktu zapisu:
- setSavepoint (), metoda: Służy do tworzenia punktu zapisu, możemy użyć metody rollback (), aby cofnąć wszystkie zmiany do punktu zapisu.
- releaseSavepoint (), metoda: Służy do usuwania danego punktu zapisu.
P # 25) Wymień kilka wyjątków, które wchodzą w zakres SQLException?
Odpowiedź:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Kliknij tutaj aby uzyskać więcej informacji na temat powyższych wyjątków.
P # 26) Co to jest przetwarzanie wsadowe i jak to zrobić w JDBC?
Odpowiedź: Przetwarzanie wsadowe to proces wykonywania kilku instrukcji SQL w jednej transakcji. Takie postępowanie skróci czas komunikacji i zwiększy wydajność. To znacznie ułatwia przetwarzanie dużej ilości danych.
Zalety przetwarzania wsadowego:
- Polepszyć wydajność
- Spójność danych
Jak przeprowadzić przetwarzanie wsadowe:
W Javie mamy metody addBatch () i executeBatch () do przetwarzania wsadowego. Te dwie metody są obecne w klasach Statement i PreparedStatement.
P # 27) Co to jest procedura składowana?
Odpowiedź: Grupa zapytań SQL wykonywanych jako pojedyncza jednostka w celu wykonania określonego zadania jest nazywana procedurą składowaną. Możemy przekazać 3 różne typy parametrów. Każda procedura jest reprezentowana przez swoją nazwę. Dlatego nazwa procedury powinna być niepowtarzalna.
>> Aby uzyskać więcej informacji na temat procedury składowanej, zapoznaj się z tym połączyć .
P # 28) Jakie są typy parametrów w procedurach składowanych?
Odpowiedź: W procedurach składowanych dostępne są trzy typy parametrów. Oni są:
- W: Służy do przekazywania wartości wejściowych do procedury.
- NA ZEWNĄTRZ: Służy do pobierania wartości z procedury.
- WEJŚCIE / WYJŚCIE: Służy do przekazywania wartości wejściowych i pobierania wartości do / z procedury.
Wniosek
Oto kilka pytań do wywiadu JDBC, które obejmują zarówno poziom podstawowy, jak i zaawansowany. Mamy nadzieję, że ten samouczek zawiera przegląd JDBC. Wyjaśnienia podane powyżej wzbogacą twoją wiedzę i poprawią twoje zrozumienie JDBC. Wszystkiego najlepszego!!!
rekomendowane lektury
- Samouczek dotyczący połączenia JDBC języka Java z przykładem programowania
- Zarządzanie transakcjami Java JDBC z przykładem
- Samouczek Java JDBC: Co to jest JDBC (łączność z bazą danych Java)
- JDBC ResultSet: jak używać Java ResultSet do pobierania danych
- Pytania i odpowiedzi do wywiadu
- 25 najlepszych pytań i odpowiedzi na rozmowę z testami zwinnymi
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- 25 najczęściej zadawanych pytań i odpowiedzi dotyczących usług internetowych Java