Java Persistence API Nedir? (Giriş)
Çoğu zaman yazılım geliştiricileri, yazılım projelerinde ; Verilerini saklama, kaydetme, yani kalıcı (persistent) hale getirme ihtiyacı duyuyor. Normal şartlarda bir Java sınıfı, koşum zamanında (Runtime) mevcut durumunu (state’ini) korumaktadır. Yani burada durum (hal) dediğimiz şey, sınıf içerisindeki değişken tanımlamaları, nesne referansları vs. Yine koşum anında bu verilere erişmek gayet olası bir durum. Peki program koşumu sonlandığında ne olacak? Cevap : Garbage Collecter koşumu biten nesneleri ve dolayısıyla state’ ini yok edecek. Peki bu sınıfları bir ikincil disk birimi üzerinde kalıcı hale getirmek için ne yapılabilir.
Birince seçenek, ismi konu olan sınıfı serileştirerek bit serileri halinde ikincil bir disk birimine kaydetmek olacaktır.
İkinci seçenek ise, olası kullandığımız ilişkisel veritabanlarında (mysql, hsqldb, derby) verilerimizi saklamak olacaktır.
İlişkisel veritabanlarının içerisinde tablolarımız, bu tabloların dahilinde de kolonlarımız mevcut. Bu kolonların altında da satırlarımız mevcut. Yine bir tablo içinde birincil anahtar (primary key) ve yabancı anahtar (foreign key) bulunabilir. Yine bu kolonlara ait kısıtlar (constrait) (unique,null gibi) bulunabilir. Fakat, nesneye yönelik programlama yaklaşımı tüm bu birimlerden bihaberdir. Farzedelimki, bir sınıfımız mevcut, ve biz bu sınıfı persiste etmek istiyoruz. Klasik yaklaşımda, veritabanına bir bağlantı kuracaktık ve nesne özelliklerini bilindik SQL komutları ile veritabanımıza kaydedecektik. Herşey güzel hoşta, gereksiz kod kalabalığı ve akabinde bir karmaşıklık ortaya çıkacaktı. İşte bu noktada biz istiyoruz ki, nesneye yönelik geliştirilmiş bir yazılım projesinde, geliştirici bu kod kalabalığına bulaşmasın, bir birim herhangi bir sınıf nesnesini bizim için ilişkisel veritabanına, nesneye yönelik yaklaşıma uygun kayıt etsin.
Bu birim Java’nın bize sunduğu JPA (Java Persistence Api)’ dir . Piyasada JPA’yı implement eden yani uygulayan pek çok uygulama mevcut. Bunlardan en çok kullanılanlar EclipseLink, Hibernate ve Toplink. Birazdan izleyeceğimiz projede EclipseLink implementasyonunu kullanacağız. Kuram kısmının şu anlık yeterli olduğunu düşünüyorum. Şimdi ise Uygulama kısmına geçelim.
Tag:jpa, jpa giriş, veritabanı
4 Comments
Rahman bey, bir azeri olarak yaptığınız video eğitime saygı duydum. Dersler için teşekkürler. Sadece olarak video görüntü kalitesi düşük olduğu üçün izlemek bir az sıkıcı geliyor.
Merhabalar, iyi niyetiniz için teşekkür ederim. Eğer video çalıştığında 360p yazan kısıma tıklarsanız, ardışık olarak video kalitesini görebilirsiniz. Eğer en üstteki 720p ‘ yi seçerseniz HD kalitede izleyebilirsiniz.
Başarılı bir paylaşım, çok yardımcı oldunuz, devamını sabırsızlıkla bekliyoruz..
Hibernate, Transcation yönetimi ve ileri JPA konuları bekliyoruz..
Teşekkür ederim.