En İyi 50 JDBC Röportaj Soruları ve Cevapları (2024)

İşte hayallerindeki işi bulmaları için hem yeni başlayanlar hem de deneyimli adaylar için Java Veritabanı Bağlantısı (JDBC) mülakat soruları ve yanıtları.

Ücretsiz PDF İndir: JDBC Mülakat Soruları


1) JDBC nedir?

JDBC, Java Veritabanı Bağlantısı anlamına gelir. JDBC, veritabanıyla iletişim kuran ve SQLquery'yi çalıştıran bir Java API'sidir.


2) JDBC sürücüsü nedir ve kaç tane JDBC sürücüsü mevcuttur?

JDBC sürücüsü, Java uygulamasına ve veritabanına yardımcı olan sınıfları ve arayüzleri içerir.

4 tip JDBC sürücüsü vardır.

  1. Tip 1 sürücüsü veya JDBC-ODBC köprü sürücüsü.
  2. Tip 2 sürücüsü veya Yerel-API, kısmen Java sürücüsü.
  3. Type 3 sürücüsü veya Ağ Protokolü, saf Java sürücüsü.
  4. Tip 4 sürücü veya Yerel protokollü, saf Java sürücüsü.

3) Nasıl bağlanabilirim MySQL veya Java ile Oracle?

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

Kod açıklaması

Class.forName, JDBC sürücüsünün bir örneğini oluşturur ve DriverManager'a kaydolur.

getConnection () yöntemi her zaman bir veritabanına bağlantı kurar.

Yukarıdaki bağlantı nesnesinden bir Statement nesnesi oluşturmamız gerekiyor. İfade sonuç kümesi nesnesini döndürecektir. ResultSet.next (), Sonuç kümesinin hala satır döndürdüğü anlamına gelir.


4) Hangi JDBC sürücüsü en hızlı sürücüdür?

Type 4 sürücüsü veya Yerel protokol, saf Java sürücüsü, en hızlı sürücüdür.


5) JDBC API bileşenleri nelerdir?

Dört tür bileşen vardır

  1. JDBC API'si
  2. JDBC Sürücü Yöneticisi
  3. JDBC Test Paketi
  4. JDBC-ODBC Köprüsü
JDBC Mülakat Soruları
JDBC Mülakat Soruları

6) JDBC beyanları nelerdir?

Aşağıda verildiği gibi 3 tür JDBC İfadesi vardır:

  1. Açıklama: Yürütülecek SQL veritabanına karşı sorgu (statik SQL sorgusu).
  2. Hazırlanan Açıklama: SQL ifadesini tekrar tekrar çalıştırmak istediğimizde kullanılır. Giriş verileri dinamiktir ve çalışma zamanında giriş alınır.
  3. Çağrılabilir Açıklama: Saklı prosedürleri yürütmek istediğimizde kullanılır.

7) Saklı prosedürleri nasıl çalıştırabiliriz?

Saklı prosedürler JDBCcallable deyimi kullanılarak yürütülebilir. İşte kod.

Connection conn = null;

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

callStmt.setString(1, "abcdefg");


8) Java'da PreparadStatement kullanmanın avantajları nelerdir?

Hazırlanan İfade aynı SQL ifadelerini tekrar tekrar yürütmek için kullanılır. Hazırlanan ifade “n” sayısı kadar kullanılmasına rağmen sadece bir kez derlenmiştir.


9) Sonuç Kümesi nedir?

Java.sql.ResultSet arayüzü, bir SQL sorgusunun sonuç kümesi anlamına gelir. Bu, imlecin tablonun bir satırını işaret ettiği anlamına gelir; ilk satırın öncesine işaret eder.


10) ResultSet türleri nelerdir?

Üç tür ResultSet mevcuttur. Herhangi bir ResultSet bildirmezsek bu, TYPE_FORWARD_ONLY çağrısını yaptığımız anlamına gelir

  1. TYPE_FORWARD_ONLY: imleç yalnızca ileri doğru hareket edebilir.
  2. TYPE_SCROLL_INSENSITIVE: imleç ileri ve geri hareket edebilir ancak hassas değildir.
  3. TYPE_SCROLL_SENSITIVE: imleç ileri ve geri hareket edebilir ancak hassastır

11) JDBC'de RowSet ve ResultSet arasındaki farkı açıklayın?

Bir DB'ye ResultSet tanıtıcı bağlantısında, Result'u serileştirilmiş bir nesne olarak yapamayız.

Yukarıdaki sorun nedeniyle Resultset'i ağ üzerinden aktaramıyoruz.

RowSet, ResultSet arayüzünü genişletir, böylece ResultSet'teki tüm yöntemleri tutar. RowSet serileştirildi.

Yani Rowset’in veritabanıyla bağlantısı olmadığı için bir sınıftan diğer sınıfa aktarabiliyoruz.


12) JDBC'de neden setAutoCommit(false) kullanmalısınız?

Otomatik Kabul'ü kapatmak istiyorsanız, bağlantı.setAutoCommit(false) ayarını yapın.


13) JDBC'deki veritabanı uyarıları nedir ve JDBC'deki veritabanı uyarılarını nasıl ele alabiliriz?

SQL uyarısı veya Veritabanı uyarısı, SQLException sınıfının alt sınıfıdır. Connection, Statement ve ResultSet'te getWarnings() yöntemini kullanarak bunu halledebiliriz.


14) Boş bir ResultSet alabilir miyim?

Hayır, null Sonuç Kümesini alamayız. ResultSet.next(), sonraki kayıt bir satır içermiyorsa null değerini döndürebilir.


15) Meta Veri derken neyi kastediyorsunuz ve onu neden kullanıyoruz?

Meta veriler, diğer verilerle ilgili veriler veya bilgiler anlamına gelir. Veritabanı ürün sürümünü, sürücü adını, toplam tablo ve görünüm sayısını almak için meta verileri kullanırız.


16) JDBC'de yürütme, yürütme Sorgulama ve yürütme Güncelleme arasındaki fark nedir?

Execute(): Her türlü SQL Sorgusu için kullanılabilir.

ExecuteQuery() : sorguyu seçmek için kullanılabilir.

ExecuteUpdate(): tabloyu değiştirmek/güncellemek için kullanılabilir.


17) Veritabanı bağlantı havuzu oluşturma nedir? Bağlantı havuzu kullanmanın avantajları?

Bağlantı havuzu, bağlantıların önbellekte saklanacağı ve bunları gelecekte yeniden kullanabileceğimiz anlamına gelir.

avantajı:

  1.  Bu daha hızlı
  2.  Bağlantı havuzu oluşturmanın veritabanı bağlantısını teşhis etmesi ve analiz etmesi daha kolay hale gelir.

18) DriverManager sınıfının işlevi nedir?

Kullanıcı ve sürücüler arasında bir arayüzdür. DriverManager, bir veritabanı ile uygun sürücü arasındaki tüm etkinliği izler.


19) Toplu güncellemelerin anlamı nedir?

Toplu güncellemeler, bir grup/grup SQL sorgusunun aynı anda yürütülmesi anlamına gelir.

Toplu güncellemeler yalnızca ekleme, güncelleme ve silme için kullanılabilir ancak seçme sorgusu için kullanılamaz.


20) JDBC API'sinde kaç paket mevcut?

JDBC API'sinde iki tür paket mevcuttur

  1. java.sql
  2. javax.sql

21) Yürütme, yürütmeQuery ve yürütmeUpdate'in dönüş türü nedir?

Çalıştırmanın dönüş türü Boolean'dır

ExecuteQuery'nin dönüş türü ResultSet nesnesidir

ExecuteUpdate'in dönüş türü int'tir


22) Sonuç Kümesinin indeksi 0 ile mi yoksa 1 ile mi başlıyor?

Sonuç Kümesinin indeksi 1 ile başlar.


23) Sürücüleri yüklerken Class.forName'in rolü nedir?

Class.forName, JDBC sürücüsünün bir örneğini oluşturur ve DriverManager'a kaydolur.


24) JDBC-ODBC Köprüsü çok iş parçacıklı mı değil mi?

Hayır, JDBC-ODBC Bridge, ODBC'ye yapılan tüm çağrıları serileştirmek için senkronize yöntemler kullanır.


25) JDBC'de işlem yönetimini hangi arayüz yönetir?

Bağlantı arayüzü JDBC'deki işlem yönetimini yönetir. Taahhüt (), geri alma () vb. için yöntem sağlar.


26) Neden “Uygun sürücü yok” hatası oluşuyor?

DriverManager.getConnection metodunu çağırdığımızda uygun sürücü yok” mesajı çıkıyor,

aşağıdaki nedenlerden dolayı ortaya çıkabilir:

  • getConnection yöntemini çağırmadan önce tam JDBC sürücüleri yüklenemiyor.
  • Geçersiz veya yanlış JDBC URL'si olabilir.

27) Hazırlanan İfadeler daha hızlıdır. Neden?

Hazırlanan ifadenin yürütülmesi, doğrudan yürütmeden daha hızlıdır çünkü ifade yalnızca bir kez derlenir. Hazırlanan ifadeler ve JDBC sürücüsü yürütme sırasında birbirine bağlanır ve herhangi bir bağlantı ek yükü yoktur.


28) Birden fazla veritabanına bağlanmak mümkün mü? Tek bir ifade kullanarak iki, üç veya daha fazla veritabanından veriyi güncelleyebilir veya çıkarabilir miyiz?

Evet, aynı anda birden fazla veritabanına bağlanmak mümkündür ancak bu, belirli sürücüye bağlıdır.

Farklı veritabanındaki verileri güncellemek ve çıkarmak için tek ifadeyi kullanabiliriz. Ancak birden fazla veritabanıyla veya tek bir veritabanıyla ilgilenmek için ara katman yazılımına ihtiyacımız var.


29) Bana setMaxRows(int) ve SetFetchSize(int) arasındaki farkı söyler misiniz?

setMaxRows(int) SetFetchSize(int)?
Bir sonuç kümesinin aynı anda kaç satır içerebileceğini tanımlar Veritabanından okunacak satır sayısını tanımlar.

30) Bana özel karakterlerden bahseder misin?

Özel bir karakterin önünde bir kaçış karakteri bulunur. Örnek -

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

31) Veritabanındaki “kirli okuma”nın anlamı nedir?

Kirli okuma, "doğru olabilecek veya doğru olmayabilecek değeri okumak" anlamına gelir.


32) İki aşamalı taahhütlerden neyi kastediyorsunuz?

Dağıtılmış işlem sürecinde iki aşamalı taahhüt kullanılır. Herhangi bir işlem yürütülüyorsa ve birden fazla veritabanını etkileyecekse. Tüm veritabanlarının birbiriyle senkronize olmasını sağlamak için iki aşamalı taahhütler kullanılacaktır.


33) JDBC'de kaç tane kilitleme sistemi vardır?

JDBC'de birden fazla kullanıcıyı idare edebildiğimiz iki tip kilitleme mevcuttur.

İki kullanıcı aynı kaydı görüntülüyorsa kilitleme yapılmaz. Bir kullanıcı bir kaydı güncelliyorsa ve ikinci kullanıcı da aynı kaydı güncelliyorsa. O zaman kilitlemeyi kullanacağız.

  1. İyimser Kilitleme: kaydı yalnızca “güncelleme” yapacağımız zaman kilitleyecektir.
  2. Kötümser Kilitleme: kaydı görüntülemek, güncellemek ve işlemek için “seçim”den kilitleyecektir.

34) JDBC'deki istisnalar nelerdir?

JDBC'de dört tür istisna vardır.

  1. toplu Güncelleme İstisnası
  2. Verilerin Kesilmesi
  3. SQL İstisnası
  4. SQL Uyarısı

35) JDBC kullanarak DB'ye bağlanmak için gerekli adımları verir misiniz?

JDBC kullanarak veritabanına bağlanmanın iki yolu vardır

  1. DriverManager'ı kullanma:

Class.forName(driver class) ve Class.forName() yardımıyla sürücü sınıfını yükleyecektir.

Yükleme Sonrası kontrolü DriverManager'a aktaracaktır.

DriverManager.getConnection() veritabanına erişim için bağlantı oluşturacaktır.

  1. DataSource'u kullanma:

DataSource için JNDI yardımıyla DriverManager'ı kullanmanıza gerek yoktur. Adlandırma hizmeti sunucusundan Veri Kaynağını arayacaktır. DataSource.getConnection() yöntemi Connection nesnesini DB'ye döndürecektir.


36) JDBC Mimarisini Açıklayın?

JDBC API, veritabanı için hem 2 katmanlı hem de 3 katmanlı modelleri destekler.

2 katmanlı modelde Java uygulaması veri kaynağıyla etkileşime girer

3 katmanlı modelde komutlar, hizmetlerin "orta katmanına" yönlendirilir. Daha sonra veri kaynağına komutlar gönderilir.


37) JDBC 4.0'da mevcut olan yeni özellikler nelerdir?

Yeni özellikler

  • JDBC sürücü sınıfına göre otomatik yükleme
  • Gelişmiş Bağlantı Yönetimi
  • RowId SQL etkin
  • Ek Açıklamalar kullanılarak SQL tarafından uygulanan veri kümesi
  • SQL istisna işlemedeki geliştirmeler
  • SQL'i destekleme XML Dosyaları

38) JDBC'de kullanılan paketler nelerdir?

JDBC'de 8 paket kullanılıyor –

  1. sql.Sürücü
  2. Bağ
  3. Açıklama
  4. Hazır Beyanı
  5. Çağrılabilir Bildirimi
  6. Sonuç kümesi
  7. Sonuç KümesiMetaVerileri
  8. VeritabanıMetaVeri

39) JDBC'de kaç tane RowSet mevcut?

İki tür satır kümesi mevcuttur:

  1. bağlı – Bağlı bir RowSet nesnesi veritabanına anında bağlanır. Uygulama sonlandırılırsa bağlı RowSet nesnesi de sonlandırılır.
  2. Bağlantı kesildi – Bağlantısı kesilmiş bir RowSet nesnesi, gerekli sorgunun yürütülmesinden sonra veritabanına bağlanır.

40) Bağlantının anlamı nedir?

Bağlantı arayüzü veritabanıyla etkileşime yönelik yöntemlerden oluşur.


41) JDBC Kayıt Noktasını açıklayın?

Kayıt noktası, geçerli işlemin geri alınabileceği bir noktayı temsil eder. Tüm değişikliklerini geri almak yerine yalnızca bir kısmını geri almayı seçebilir.


42) DataSource kullanmanın avantajlarını sıralayın?

Veri kaynağı, işi yönetici ve programcı/geliştirici arasında bölüyor.

Yönetici bir DataSource nesnesi oluşturur ve onu JNDI kayıt defterine bağlar. Bir programcı/geliştirici DataSource nesnesini kayıt defterinden alır. Daha sonra veritabanı ile bağlantı kurulacaktır.


43) ResultSet'in etrafındaki sarmalayıcı gibi bir JdbcRowSet'e ihtiyacımızın nedeni nedir?

ResultSet nesnesini JavaBeans bileşeni olarak kullanabiliriz.

  • JdbcRowSet ayrıca JavaBeans bileşeni olarak da kullanılabilir. Bu nedenle tasarım veya derleme zamanında oluşturulup yapılandırılabilir ve çalışma zamanında çalıştırılabilir.
  • Tüm jdbcRowSet nesneleri kaydırılabilir ve güncellenebilirdir.

44) Bir sonuç kümesini kaç farklı şekilde görüntüleyebiliriz?

ResultSet'i görüntülemenin 2 yolu vardır

  1. sütun
  2. sütun indeksi.

Örnek: getInt(Dize sütunAdı), getInt(int sütunIndex)


45) Bir sonuç kümesini kaç farklı şekilde güncelleyebilirsiniz?

Aşağıdaki yöntemler sonuç kümesini güncellemenize yardımcı olur

  • güncellemeRow()
  • sırayı sil()
  • yenilemeRow()
  • cancelRowUpdates()
  • eklemeSatır()

46) Java'da veritabanı bağlantılarını neden kapatmalıyız?

En iyi uygulama olarak sonuç kümesini, ifadeyi ve bağlantıyı kapatmalıyız. Bağlantı bir havuzdan geliyorsa kapatıldığında bağlantı yeniden kullanılmak üzere havuza geri gönderilir. Bunu nihayet{} bloğunda yapıyoruz, çünkü herhangi bir istisna meydana gelirse yine de bunu kapatma şansımız olur.


47) JDBC'de neden blob veri türlerini kullanıyoruz?

Bunlar, görüntüler, filmler vb. gibi büyük miktarda veriyi veritabanına depolamak için kullanılır.


48) ResultSet'te Eşzamanlılık özelliği nasıl ayarlanır?

İki eşzamanlılık düzeyi vardır

  1. CONCUR_READ_ONLY – Yalnızca okumak içindir.
  2. CONCUR_UPDATABLE – Hem okunmak hem de güncellenmek içindir.

49) İstemci ve sunucu veritabanı imleçleri arasındaki fark nedir?

Sunucu tarafı imleci, verilerin ve sonuçların sunucuya kaydedildiği anlamına gelir. Yalnızca istenen veriler istemciye gönderildiğinde.

İstemci tarafı imleci, istemci konumuna gönderilen tüm veriler anlamına gelir.


50) JDBC'yi kullanarak görüntüleri Veritabanına nasıl eklersiniz?

BLOB veri tipini kullanan veritabanındaki görüntüler, burada görüntü bir bayt akışı olarak depolanır. Aşağıdaki kod, görüntünün DB'ye nasıl ekleneceğini göstermektedir.

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

Bu mülakat soruları aynı zamanda yaşamınızda da yardımcı olacaktır.

paylaş

2 Yorumlar

  1. Avatar Cehnavi diyor ki:

    öğrenciler için çok kullanışlı ………..

Yorum bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlenmişlerdir. *