Sobes.tech
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:

  1. Java uygulaması, metodları çağırmak için JDBC API'yi kullanır.
  2. Çağrılar JDBC Sürücü Yöneticisine iletilir.
  3. Yöneticisi, belirtilen veritabanı için uygun JDBC sürücüsünü bulur ve yükler.
  4. 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).
  5. 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();
            }
        }
    }
}