Junior
JDBC hangi bileşenlerden oluşur?
sobes.tech yapay zeka
AI'dan gelen yanıt
JDBC (Java Veri Tabanı Bağlantısı), aşağıdaki ana bileşenlerden oluşur:
- JDBC API: Java'da yazılmış ve çeşitli veritabanlarıyla etkileşim kurmak için standart bir yol sağlayan arayüzler ve sınıflar kümesi. Bu API, geliştiriciler tarafından kod yazmak için kullanılır.
- JDBC Sürücü Yöneticisi: Farklı JDBC sürücülerini yöneten sınıf. Sürücüleri yüklemek ve veritabanına bağlantı kurmak için sürücü örnekleri sağlar.
- JDBC Sürücüsü: Belirli bir veritabanı yönetim sistemi (DBMS) için JDBC API arayüzlerini uygulayan yazılım. Farklı JDBC sürücü türleri vardır:
- Tip 1 (JDBC-ODBC köprü sürücüsü): JDBC çağrılarını ODBC çağrılarına dönüştürür. İstemci tarafında ODBC sürücüsünün kurulmasını gerektirir. Artık kullanılmamaktadır.
- Tip 2 (Yerel API sürücüsü): JDBC çağrılarını DBMS'nin yerel API çağrılarına dönüştürür. İstemci tarafında DBMS'nin yerel kodunun kurulmasını gerektirir.
- Tip 3 (Ağ Protokolü sürücüsü): JDBC çağrılarını DBMS protokolüne çevirmek için ara bir uygulama sunucusu kullanır. Yerel kod kurulumu gerekmez.
- Tip 4 (Saf Java sürücüsü): %100 Java ile yazılmıştır ve JDBC çağrılarını doğrudan DBMS protokolüne dönüştürür. En yaygın türdür.
- Java Uygulaması: JDBC API'yi kullanarak veritabanına bağlanan ve işlemleri (DML, DDL) gerçekleştiren Java ile yazılmış uygulama.
Bileşenler arasındaki etkileşim şu şekilde gerçekleşir:
- Java uygulaması, metodları çağırmak için JDBC API'yi kullanır.
- Çağrılar JDBC Sürücü Yöneticisine iletilir.
- Yöneticisi, belirtilen veritabanı için uygun JDBC sürücüsünü bulur ve yükler.
- JDBC sürücüsü, doğrudan veritabanıyla etkileşime geçer, protokol veya yerel API'yi kullanır (sürücü türüne bağlı olarak).
- Sorgu sonuçları veya hata bilgileri, sürücü, Yöneticisi ve JDBC API aracılığıyla Java uygulamasına geri döner.
// Java'da JDBC API kullanımına örnek
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
public class JdbcExample {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// Sürücüyü yükleme (modern Java sürümleri için isteğe bağlı)
// Class.forName("com.mysql.cj.jdbc.Driver");
// Yöneticiden bağlantı alma
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mydatabase", // Veritabanı URL'si
"username", // Kullanıcı adı
"password" // Parola
);
// SQL sorguları çalıştırmak için Statement oluşturma
statement = connection.createStatement();
// SELECT sorgusu çalıştırma
resultSet = statement.executeQuery("SELECT id, name FROM mytable");
// Sonuçların işlenmesi
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("ID: " + id + ", Name: " + name);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
// Kaynakların kapatılması
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}