İnfografik
← Ünite 10
Görsel Programlama 2

Ünite 10: Veri Tabanı Destekli Javafx Uygulamaları

Type 4 JDBC Sürücüleri
Platformdan bağımsız olarak doğrudan veritabanı protokolü ile iletişim kuran sürücülerdir. Güncel Java projelerinde en çok tercih edilen ve en yüksek performansı sunan sürücü tipidir.
Scene Builder Entegrasyonu
NetBeans IDE içerisinde Tools -> Options -> Java -> JavaFX yolu üzerinden yapılandırılır. FXML dosyalarının sürükle-bırak yöntemiyle görsel olarak tasarlanmasını sağlar.
try-with-resources
Java 7 ile gelen bu yapı, veritabanı bağlantısı gibi kaynakların işlem sonunda otomatik olarak kapatılmasını sağlar. Hata yönetimi ve kaynak güvenliği için kritik bir standarttır.
SQL Enjeksiyon Koruması
PreparedStatement kullanılarak sorgu parametrelerinin güvenli bir şekilde işlenmesidir. Kullanıcıdan alınan verilerin doğrudan SQL komutuna eklenmesi yerine '?' yer tutucuları ile işlenmesini sağlar.

Anahtar Kavramlar

StageJavaFX uygulamasındaki en üst düzey kapsayıcı olan pencereyi temsil eder. Her uygulama en az bir Stage nesnesine sahiptir.
Scene GraphJavaFX arayüz bileşenlerinin (düğümlerin) hiyerarşik ağaç yapısıdır. Arayüzdeki her öğe bu ağacın bir parçası olarak yönetilir.
FXMLJavaFX arayüzlerini XML formatında tanımlayan dildir. Tasarımın koddan ayrılmasını sağlayarak MVC mimarisini destekler.
JDBCJava uygulamalarının veritabanları ile iletişim kurmasını sağlayan standart API'dir. SQL komutlarını çalıştırmak için kullanılır.
PreparedStatementSQL sorgularını önceden derleyerek çalıştıran ve parametre kullanımı sayesinde SQL enjeksiyonuna karşı koruma sağlayan güvenli bir sınıftır.
ObservableListİçeriğinde bir değişiklik olduğunda dinleyicilerine haber veren özel bir liste yapısıdır. TableView'in verileri otomatik güncellemesini sağlar.
DAO (Data Access Object)Veritabanı işlemlerini (CRUD) uygulama mantığından ayıran, veriye erişim katmanını yöneten tasarım desenidir.
Bindingİki nesne arasındaki verinin otomatik olarak senkronize edilmesini sağlayan mekanizmadır. Örneğin, TextField'deki değerin modele otomatik aktarılması.
Task/ServiceJavaFX'te uzun süren veritabanı işlemlerini ana arayüz iş parçacığını (UI Thread) dondurmadan arka planda çalıştırmaya yarayan sınıflardır.
MVCModel, View ve Controller bileşenlerini birbirinden ayırarak yazılımın daha düzenli ve sürdürülebilir olmasını sağlayan mimari desendir.

Diğer Önemli Bilgiler

TableView ve ObservableList

TableView, verileri satır ve sütunlarda gösteren bileşendir. Veri kaynağı olarak ObservableList kullanıldığında, listedeki her ekleme veya silme işlemi tabloya anında yansır.

Concurrency (Task/Service)

Veritabanı sorguları gibi uzun süren işlemlerin arayüzü dondurmaması için kullanılır. ProgressIndicator ile birlikte kullanılarak kullanıcıya işlem durumu hakkında bilgi verilir.

Sınavda Dikkat Et

  • PreparedStatement kullanmayı unutmayın; hem güvenlik hem de performans açısından Statement'tan üstündür.
  • Kaynak yönetimi için her zaman try-with-resources yapısını tercih edin, bu sayede veritabanı bağlantılarını manuel kapatma hatasından kurtulursunuz.
  • MVC mimarisinde Model katmanının JavaFX bileşenlerine (TextField, TableView vb.) bağımlı olmamasına dikkat edin.
  • TableView ile çalışırken verilerin güncellenmesi için ObservableList kullanıldığından emin olun, aksi halde tablo veriyi göstermez.
  • Uzun süren veritabanı işlemlerini ana iş parçacığında (UI Thread) çalıştırmayın; Task ve Service yapılarını kullanarak arayüzün donmasını engelleyin.
  • Scene Builder entegrasyonu için NetBeans ayarlarında doğru dizin yolunun tanımlandığını kontrol edin.