Günümüzde çoğu yazılım, verileri kalıcı olarak saklamak için veritabanlarını kullanır. Java programlama dilinde veritabanı işlemleri yapmak için kullanılan temel API JDBC (Java Database Connectivity)‘dir. Bu yazıda JDBC nedir, nasıl kullanılır, veritabanı bağlantısı nasıl kurulur ve verilerle nasıl işlem yapılır detaylıca öğreneceğiz.
📘 JDBC Nedir?
JDBC, Java uygulamaları ile veritabanları arasında köprü görevi gören bir API’dir. SQL sorgularının Java içinden çalıştırılmasına, veritabanına veri eklenmesine, güncellenmesine ve okunmasına olanak tanır.
JDBC ile Yapılabilecekler:
- Veritabanına bağlanmak
- SQL sorgusu göndermek
- Verileri listelemek
- Kayıt eklemek, silmek, güncellemek
- Transaction yönetimi
🧱 JDBC Mimarisi
- DriverManager – Sürücüleri yükler ve bağlantıyı sağlar.
- Connection – Veritabanı ile bağlantıyı temsil eder.
- Statement / PreparedStatement – SQL komutlarını çalıştırır.
- ResultSet – Sorgu sonuçlarını tutar.
⚙️ JDBC ile Veritabanı Bağlantısı Kurma (MySQL Örneği)
Adım 1: MySQL JDBC Driver’ını Projeye Dahil Et
- JDBC sürücüsü indir: MySQL Connector/J
.jar
dosyasını projenize ekleyin.
Adım 2: Veritabanı Oluştur (Örnek)
CREATE DATABASE okul;
USE okul;
CREATE TABLE ogrenciler (
id INT PRIMARY KEY AUTO_INCREMENT,
ad VARCHAR(50),
soyad VARCHAR(50),
yas INT
);
JDBC Bağlantı Kod Örneği
import java.sql.*;
public class JdbcBaglanti {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/okul";
String kullanici = "root";
String sifre = "1234"; // Kendi şifrenizi yazın
try {
Connection conn = DriverManager.getConnection(url, kullanici, sifre);
System.out.println("Veritabanına başarıyla bağlanıldı.");
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
➕ Kayıt Ekleme (INSERT)
String sql = "INSERT INTO ogrenciler (ad, soyad, yas) VALUES (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, "Ahmet");
ps.setString(2, "Yılmaz");
ps.setInt(3, 20);
ps.executeUpdate();
📋 Veri Listeleme (SELECT)
String sql = "SELECT * FROM ogrenciler";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id") + " - " +
rs.getString("ad") + " " +
rs.getString("soyad") + " - " +
rs.getInt("yas"));
}
🧽 Veri Güncelleme ve Silme
Güncelleme:
String sql = "UPDATE ogrenciler SET yas = ? WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 22);
ps.setInt(2, 1);
ps.executeUpdate();
Güncelleme:
String sql = "DELETE FROM ogrenciler WHERE id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(1, 1);
ps.executeUpdate();
🔐 Güvenlik ve En İyi Uygulamalar
- PreparedStatement kullanarak SQL enjeksiyonunu engelleyin.
- Veritabanı bağlantı bilgilerini
.properties
dosyasında saklayın. - Connection Pooling ile performans iyileştirin.
- Kaynakları kapatmayı unutmayın:
conn.close()
,rs.close()
,stmt.close()
.