top 25 jdbc interview questions
Bu eğitim, mülakata hazırlanmanıza yardımcı olmak için sık sorulan JDBC mülakat soruları ve açıklamaları ile yanıtları sağlar:
İçinde JDBC Toplu İşleme ve Depolanan Prosedür öğreticisi JDBC eğitim serisi , JDBC sürücüsünü kullanarak Java'da toplu işlem yapma yöntemlerini öğrendik ve ayrıca saklı yordamlar oluşturmayı ve bunu bir Java programından çağırmayı öğrendik.
JDBC, Java Veritabanı Bağlantısı için yaygın olarak kullanılan kısa biçimdir. JDBC'yi kullanarak Oracle, MySQL, MS Access gibi farklı İlişkisel Veritabanları ile etkileşim kurabiliriz.
Bu makale, JDBC röportajını çözmenize yardımcı olacaktır. Burada tüm önemli JDBC kavramlarını açıkladık.
Sık Sorulan JDBC Mülakat Soruları
S # 1) JDBC nedir?
Cevap: Java Veritabanı Bağlantısı, resmi olmayan bir şekilde JDBC olarak bilinir. Java uygulamasından Veritabanında DB işlemlerini gerçekleştirmek için kullanılır. Oracle, MySQL, MS Access vb. Gibi her türlü DB ile etkileşimi destekler.
S # 2) JDBC sürücüsünün kullanımı nedir?
Cevap: Bir yazılım bileşenidir ve Java uygulamasının Veritabanı ile etkileşime girmesini sağlamak için kullanılır.
S # 3) JDBC'deki farklı sürücü türleri nelerdir?
Cevap: Piyasada 4 farklı JDBC sürücüsü var.
Onlar:
- İ harfini yaz: JDBC - ODBC Köprüsü
- Tip II: Yerel API - Yarım Java Sürücüsü
- Tip III: Ağ Protokolü - Tamamen Java Sürücüsü
- Tip IV: İnce Sürücü - Tamamen Java Sürücüsü
Tip I: JDBC-ODBC Köprüsü
JDBC-ODBC köprüsü, istemci ile DB sunucusu arasında bir arabirim olarak davranacaktır. İstemci, JDBC-ODBC sürücüsünü buna koymalıdır. Veritabanı ODBC sürücüsünü desteklemelidir. İstemci sistemdeki sürücü kurulumu konusunda endişemiz yoksa, bu sürücüyü kullanacağız.
Tip II: Yerel API: Yarı Java Sürücüsü
Neredeyse bir JDBC-ODBC sürücüsü gibidir. Bir ODBC sürücüsü yerine burada yerel API kullanıyoruz. İstemci tarafı veritabanının kitaplıkları kullanılır.
Tip III: Ağ Protokolü
Veritabanına erişmek için 3 katmanlı bir yaklaşım gibi çalışır. DB'ye bağlanmak için bir ara sunucu kullanılacaktır. JDBC yöntemi çağrıları, verileri bir ara sunucuya gönderir, ardından sunucu DB ile iletişim kurar.
Tip IV: İnce Sürücü
Kesinlikle Java ile yazılmıştır. JDBC yöntemi çağrılarını açıkça satıcıya özgü veritabanı protokolüne dönüştürür. Günümüzde, Veritabanı satıcısının kendisi müşterileri için bu tür bir sürücü sağlıyor. Bu nedenle programcılar başka kaynaklara güvenmezler. Diğer sürücülere göre daha yüksek performans verir.
S # 4) Çoğu kişi tarafından hangi tür JDBC sürücüsü kullanılır?
Cevap: Tip IV İnce sürücü uygulamaların çoğunda kullanılır. Veritabanı satıcısının kendisi tarafından geliştirilmiştir, böylece geliştiriciler başka herhangi bir kaynağa bağlı kalmadan doğrudan kullanabilirler. Basit ve kolay geliştirmeye izin verir. Diğer sürücülere göre daha yüksek performans verir.
S # 5) JDBC Mimarisi türleri nelerdir?
Cevap: JDBC, DB'ye erişmek için 2 tür işleme modelini destekler.
Onlar:
- İki katmanlı Mimari: Burada Java programları açıkça DB ile bağlantı kurar. JDBC sürücüsü dışında DB'ye bağlanmak için uygulama sunucusu gibi herhangi bir aracıya ihtiyacımız yoktur. Aynı zamanda bir istemci-sunucu mimarisi olarak da bilinir.
- Üç katmanlı Mimari: İki katmanlı mimarinin tamamen tersidir. JDBC sürücüsü veya Java programı ile Veritabanı arasında açık bir iletişim olmayacaktır. Uygulama sunucusu, aralarında aracı olarak kullanılır. Java programı isteği bir uygulama sunucusuna gönderecek ve sunucu bunu göndererek yanıtı DB'ye / DB'den alacaktır.
S # 6) JDBC'nin bileşenleri nelerdir?
Cevap: JDBC'de bulunan 4 ana bileşen vardır.
Onlar:
- JDBC API
- JDBC Sürücü Yöneticisi
- JDBC Test Paketi
- JDBC - ODBC Köprüsü
S # 7) JDBC ile bağlantı kurma adımları nelerdir?
Cevap: Java'da DB'ye bağlanmak için 6 temel adım vardır. Bunlar aşağıda listelenmiştir:
- Paketi içe aktar
- Sürücü yükle
- Bağlantı kurun
- İfadenin oluşturulması ve uygulanması
- Sonuçları al
- Yakın bağlantı
S # 8) Görüntüyü ve dosyayı veritabanı tablosunda saklamak için hangi veri türleri kullanılır?
Cevap:
- BLOB veri türü görüntüyü DB'de saklamak için kullanılır. Videoları ve sesleri BLOB veri türünde de saklayabiliriz. İkili veri türlerini depolamak için kullanılır.
- CLOB veri türü dosyayı DB'de saklamak için kullanılır. Verinin karakter türünü saklamak için kullanılır.
S # 9) JDBC'deki DriverManager nedir?
Cevap: DriverManager, java.sql paketinde bulunan yerleşik bir sınıftır. Kodumuzda bağladığımız / kullandığımız Java Uygulaması ile DB arasında aracı olarak kullanılacaktır. İlk adım olarak, sürücüyü DriverManager'a kaydetmemiz veya yüklememiz gerekir. Ardından sürücü uygulamada kullanıma hazır olacaktır.
DriverManager'ın ana işlevi, Veritabanının sürücü sınıfını yüklemek ve DB ile bir bağlantı oluşturmaktır.
Sürücüyü kaydetmenin veya yüklemenin 2 yolu vardır:
- Class.forName ()
- DriverManager.registerDriver ()
S # 10) Statement ve PreparedStatement arayüzleri arasındaki fark nedir?
Cevap: Aşağıdaki tablo farklılıkları açıklamaktadır:
BEYAN | HAZIRLANMIŞ BEYAN |
---|---|
Esas olarak statik SQL ifadelerini yürütmek için kullanılacaktır. | Esas olarak önceden derlenmiş SQL ifadelerini yürütmek için kullanılacaktır. |
Çalışma zamanında parametreleri kabul etmeyecek | Çalışma zamanında farklı parametreleri kabul edecek |
Hazırlanan beyana göre performansı daha düşük | Önceden derlenmiş SQL ifadelerini yürüttüğü için performansı Statement'ten daha yüksektir. |
CREATE, DROP, ALTER ve TRUNCATE gibi DDL ifadelerini çalıştırmak için uygundur. | INSERT, UPDATE ve DELETE gibi DML ifadelerini yürütmek için uygundur. |
DB'de görüntü ve dosya depolamak veya almak için kullanılamaz | DB'de görüntü ve dosya depolamak veya almak için kullanılabilir |
SQL Enjeksiyonunu zorlar | SQL Enjeksiyonunu önler |
Önerilen okuma = >> JDBC Hazırlanmış Açıklama ve Beyanı
S # 11) Execute (), executeQuery () ve executeUpdate () arasındaki farkı açıklayın.
Cevap:
Sorguyu çalıştır() | executeUpdate () | Yürüt () |
---|---|---|
DB'den bazı verileri alan SQL ifadelerini yürütmek için kullanılır. | DB'deki verileri güncelleyecek veya değiştirecek SQL ifadelerini yürütmek için kullanılır. | Her türlü SQL ifadesini yürütmek için kullanılır |
ResultSet nesnesini döndürür | Hayır'ı temsil eden bir tamsayı değeri döndürür. etkilenen satırların yüzdesi | Bir Boole değeri döndürür TRUE - bir resultSet nesnesi döndürür FALSE - int değeri verir veya hiçbir şey döndürmez |
Yalnızca SELECT Sorgusu yürütmek için kullanılır | Yalnızca SELECT olmayan bir sorguyu yürütmek için kullanılır | Hem SELECT hem de SELECT olmayan sorguları yürütmek için kullanılır |
S # 12) JDBC'de Depolanan Prosedürler nasıl çağrılır?
Cevap: CallableStatement arayüzü üzerinden SQL Stored prosedürlerini çalıştırabiliriz. CallableStatement nesnesi, Connection arayüzünün readyCall () yöntemi kullanılarak oluşturulabilir.
S # 13) ResultSet arayüzü nedir?
Cevap: ResultSet arayüzü, SQL sorgusu çalıştırıldıktan sonra çıktı verilerini saklamak için kullanılır. ResultSet nesnesi, sonuç verilerinde imleç noktasını tutar. Varsayılan olarak, imleç, sonuç verilerinin ilk satırından önce işaret eder. Sonuç kümesi nesnelerindeki verileri de gezebiliriz.
bilgisayar için en iyi mp3 müzik indirici
Sözdizimi:
İfade Arayüzü:
Statement stmnt1 = conn.createStatement(); ResultSet resultset = stmnt1.executeQuery(“Select * from EMPLOYEE”);
PreparedStatement Arayüzü:
PreparedStatement pstmnt1 = conn.prepareStatement(insert_query); ResultSet resultset = pstmnt1.executeQuery(“Select * from EMPLOYEE”);
S # 14) Sonuç Kümesi türleri nelerdir?
Cevap: ResultSet'te 3 tip vardır. Bunlar:
bir dizi java'nın derin bir kopyası nasıl yapılır
- TYPE_FORWARD_ONLY: Varsayılan seçenektir. İmleç baştan sona hareket edecektir.
- TYPE_SCROLL_INSENSITIVE: Bu tipte, imleç hem ileri hem de geri yönde hareket edecektir. Veri kümesi, SQL sorgusu verileri döndürdüğünde verilere sahiptir.
- TYPE_SCROLL_SENSITIVE: TYPE_SCROLL_INSENSITIVE ile aynıdır, fark, sonuç kümesi nesnesini yinelerken güncellenmiş verilere sahip olmasıdır.
S # 15) ResultSet'teki eşzamanlılık modları nelerdir?
Cevap: ResultSet'te 2 farklı Eşzamanlılık modu vardır. Onlar:
- ResultSet.CONCUR_READ_ONLY : Varsayılan eşzamanlılık modudur. Salt okunur seçeneği mevcuttur. Güncelleme mümkün değildir.
- ResultSet.CONCUR_UPDATABLE: Güncelleme mümkündür.
S # 16) Veritabanının eşzamanlılık modunu destekleyip desteklemediği nasıl kontrol edilir?
Cevap: Verilen tür ve eşzamanlılık modlarının veritabanı tarafından desteklenip desteklenmediğini kontrol etmek için kullanılacak supportsResultSetConcurrency () yöntemine sahibiz.
S # 17) Sonuç kümesinden belirli bir satırın verilerini alabilir miyiz?
Not: ResultSet, bir dizi satırın verilerine sahiptir
Cevap: Evet, belirli bir satırın verilerini, relative () yöntemini kullanarak resultSet'ten alabiliriz. İmleci, mevcut satırdan ileri veya geri yönde verilen satıra hareket ettirecektir. Pozitif değer verilmişse, ileri yönde hareket edecektir. Negatif değer verilmişse, geriye doğru hareket edecektir.
S # 18) ResultSet'te alıcı ve ayarlayıcı yöntemlerinin kullanımı nedir?
Cevap:
Alıcı yöntemler: Bunlar, ResultSet'ten tablonun belirli bir sütununun değerlerini almak için kullanılır. Sütun Dizini değeri veya Sütun Adı parametre olarak aktarılmalıdır. Normalde, getter yöntemini getXXX () yöntemleri olarak göstereceğiz.
Misal:
- int getInt (dize Sütun_Adı): Belirtilen sütun Index ve int veri türünün değerini bir dönüş türü olarak almak için kullanılır.
Setter Yöntemleri: Veritabanındaki değeri ResultSet setter yöntemlerini kullanarak ayarlayabiliriz. Getter yöntemlerine benzer, ancak burada veritabanına eklemek için belirli bir sütun için değerleri / verileri ve bu sütunun indeks değerini veya sütun adını iletmemiz gerekir. Normalde setter metodunu setXXX () metodları olarak göstereceğiz.
Misal:
- void setInt (int Column_Index, int Data_Value): Belirtilen sütun indeksinin değerini bir int değeriyle eklemek için kullanılır.
S # 19) ResultSetMetaData arayüzünün ana amacı nedir?
Cevap: Bu arayüz, ResultSet hakkında daha fazla bilgi verir. Her ResultSet nesnesi, bir ResultSetMetaData nesnesiyle ilişkilendirilmiştir.
Bu nesne, sütunun veri türü, sütun adı, o tablodaki sütun sayısı, tablo adı, şema adı vb. Gibi sütun özelliklerinin ayrıntılarına sahip olacaktır, ResultSet nesnesinin getMetaData () yöntemi, ResultSetMetaData nesnesi.
Sözdizimi:
PreparedStatement pstmntobj = conn.prepareStatement(insert_query); ResultSet resultsetobj = pstmntobj.executeQuery(“Select * from EMPLOYEE”); ResultSetMetaData rsmd obj= resultsetobj.getMetaData();
S # 20) DatabaseMetaData nedir?
Cevap: DatabaseMetaData arayüzü, kullandığımız Veritabanı hakkında bilgi verir. Aşağıdaki bilgileri alacağız - VeritabanıAdı, Veritabanı sürümü vb.
S # 21) ACID özelliği nedir?
Cevap:
- A – Atomiklik -> Tüm sorgular başarılı bir şekilde yürütüldüyse, veriler işlenecek, aksi takdirde işleme alınmayacaktır.
- C – Tutarlılık -> Veriler, herhangi bir işlemden sonra tutarlı olmalıdır.
- I – İzolasyon -> Her işlem izole edilmelidir.
- D – Dayanıklılık -> İşlem bir kez gerçekleştirilmişse, her zaman kullanılabilir olmalıdır (herhangi bir değişiklik olmadıysa)
S # 22) Otomatik kesinleştirme modu değeri nasıl değiştirilir?
Cevap: Varsayılan olarak, AutoCommit'in değeri TRUE'dur. SQL deyimi çalıştırıldıktan sonra otomatik olarak işlenecektir. SetAutoCommit () yöntemini kullanarak, değeri AutoCommit olarak değiştirebiliriz.
S # 23) Kaydetme ve Geri Alma yöntemlerinin kullanımı nedir?
Cevap:
Commit () yöntemi: Verileri işlemek için Java'da commit () yöntemine sahibiz. SQL yürütme işlemi tamamlandıktan sonra commit yöntemini çağırabiliriz.
Sözdizimi: connectionobj.commit ();
Geri alma () yöntemi: Verileri geri almak için Java'da rollback () yöntemimiz var. Geri alma, değişiklikleri geri almak anlamına gelir. SQL ifadelerinden herhangi biri başarısız olursa, değişiklikleri geri almak için geri alma yöntemini çağırabiliriz.
Sözdizimi: connectionobj.rollback ();
S # 24) Kayıt noktası nedir ve kayıt noktası için JDBC'de sahip olduğumuz yöntemler nelerdir?
Cevap: Kayıt noktası, bir işlemde kontrol noktaları oluşturmak için kullanılır ve belirli kayıt noktasına geri dönmemizi sağlar. İşlem tamamlandığında veya geri alındığında, bir işlem için oluşturulan kayıt noktası otomatik olarak yok edilecek ve geçersiz hale gelecektir.
Savepoint Yöntemleri:
- setSavepoint () yöntemi: Savepoint oluşturmak için kullanılır, kayıt noktasına kadar tüm değişiklikleri geri almak için rollback () yöntemini kullanabiliriz.
- releaseSavepoint () yöntemi: Verilen kayıt noktasını kaldırmak için kullanılır.
S # 25) SQLException kapsamına giren bazı istisnaları listeleyin?
Cevap:
- SQLNonTransientException
- SQLTransientException
- SQLRecoverableException
>> Tıklayın İşte Yukarıdaki istisnalar hakkında daha fazla bilgi için.
S # 26) Toplu işleme nedir ve JDBC'de nasıl yapılır?
Cevap: Toplu işlem, bir işlemde birkaç SQL ifadesinin yürütülmesi sürecidir. Bunu yapmak, iletişim süresini azaltacak ve performansı artıracaktır. Büyük miktarda veriyi işlemeyi çok daha kolay hale getirir.
Toplu İşlemenin Avantajları:
- Performans geliştirme
- Veri tutarlılığı
Toplu İşleme nasıl yapılır:
Batch işlemeyi gerçekleştirmek için Java'da addBatch () ve executeBatch () yöntemlerine sahibiz. Bu 2 yöntem Statement ve PreparedStatement sınıflarında mevcuttur.
S # 27) Depolanan prosedür nedir?
Cevap: Belirli bir görevi gerçekleştirmek için tek bir birim olarak yürütülen bir grup SQL sorgusu, Depolanan Prosedür olarak bilinir. 3 farklı tip parametre geçirebiliriz. Her prosedür kendi adıyla temsil edilir. Dolayısıyla prosedürün adı benzersiz olmalıdır.
>> Saklanan prosedür hakkında daha fazla bilgi için, bu bağlantı .
S # 28) Depolanan Prosedürlerdeki parametre türleri nelerdir?
Cevap: Depolanan Prosedürlerde üç tip parametre vardır. Onlar:
- İÇİNDE: Girdi değerlerini prosedüre geçirmek için kullanılır.
- DIŞARI: Prosedürden değeri almak için kullanılır.
- GİRİŞ / ÇIKIŞ: Girdi değerlerini iletmek ve prosedüre / prosedürden değer almak için kullanılır.
Sonuç
Bunlar, hem temel hem de ileri seviyeleri kapsayan bazı JDBC mülakat sorularıdır. Bu eğitimin size JDBC'ye genel bir bakış sunacağını umuyoruz. Yukarıda verilen açıklamalar bilginizi zenginleştirecek ve JDBC anlayışınızı artıracaktır. Herşey gönlünce olsun!!!
Önerilen Kaynaklar
- Programlama Örneği ile Java JDBC Bağlantısı Eğitimi
- Örneklerle Java JDBC İşlem Yönetimi
- Java JDBC Eğitimi: JDBC Nedir (Java Veritabanı Bağlantısı)
- JDBC ResultSet: Verileri Almak İçin Java ResultSet Nasıl Kullanılır
- Mülakat Soruları ve Cevapları
- 25 En İyi Çevik Test Mülakat Soruları ve Cevapları
- ETL Test Mülakat Soruları ve Cevapları
- En İyi 25 Java Web Hizmetleri Mülakat Soruları ve Cevapları