Java ile Kalıcılık (Persistence) - Hibernate

0
malkocoglu
Java programlarımızı yazarken nesneler ile uğraşırız. Bu nesneleri veri tabanına yazmamız gerekince, ilişkisel dünyaya ve kavramlarına atlamış oluyoruz. İlişkisel ve nesnesel modeller birbirinden farklılar, ve sonuç, "Model Uyuşmazlığı" denen kodlama stillerindeki anlaşmazlık olmaktadır. Çözüm: Java icinde SQL yazmadan, nesneleri tablolara eşleme dosyaları ile bağlamak, ve bu bağ üzerinden otomatik SQL üretmek. Kalıcılık (persistence) araçları burada yardımcı oluyor. Java dünyasında kalıcılık araçlarından Hibernate'i aşağıdaki yazı dizisinde tanıtıyoruz.
SELECT / UPDATE / INSERT / DELETE Yazmaktan Kurtulun
Hibernate ve Yabancı Anahtarlar (Foreign Keys)
Hibernate İle Nesne Okumak
Sorgulama ve Hibernate

Görüşler

0
FZ
Çok çok önemli bir konu olduğunu düşünüyorum, dolayısı ile makale için teşekkürler! Bildiğim kadarı ile Microsoft olsun, diğer şirketler olsun .NET ortamı için de benzer çalışmalar yapıyorlar ama tabii Java teknolojileri bu konuda daha olgun.

Ciddi bir gerilim var yani bir yanda nesneye yönelik programlama mantalitesi öte yandan SQL ve yapısal SQL modeli. Sürekli bir mantaliteden diğerine geçiş. Açıkçası bu beni çok rahatsız ediyor ve maalesef henüz sunulan çözümlerin öyle çok daha yumuşak geçiş sağladıklarına ikna olmuş değilim. Yine de doğru bir yol olduğuna inanıyorum yani eğer bilgisayar kullanıyorsak biz programcıların da işlerini kolaylaştıracak önemli altyapıların geliştirilmesi lazım, şahsen program yazarken işkence çekmekten hoşlananlardan değilim ;-) Ve özellikle yani nesnelerle uğraşmayı tercih ederim, SQL ne kadar otomatik üretilirse ve ben koda baktığımda kod ne denli kısa ve ``doğal´´ görünümlü, dolayısı ile kolay okunabilir olursa o kadar iyi.
0
malkocoglu
Hakikaten, programcılar nesneler ile ne kadar zaman geçirirse, ilişkisel modelden o kadar uzaklaşıyor. Kodlama sırasında tam lazım olan bir nesne akla geliyor, ve diyoruz ki "ben bu nesneyi thiş.getOtekiNesne() ile ne kadar rahat alırdım", fakat nesne veri tabanında hafızada değil!

Kalıcılığın, hem bu tip nesne arası ilişkileri takip, hem de (özellikle) en basit CRUD (CReate/Update/Delete - Ekle/Güncelle/Sil) islemleri için çok çabuk ve faydalı bir çözüm olduğunu düşünüyorum. Olayın "Bir nesne --> Bir tablo" tarafı çözüldükten sonra, ilişki takip ve sorgulama özellikleri kullanılmaya başlanabilir. Veri tabanlarından bağımsız olabilmek te bir yan fayda, MySql'de yazdığımız Java kodu, Oracle'de değiştirmeden çalışması gibi mesela.
Görüş belirtmek için giriş yapın...

İlgili Yazılar

Kitap: Kurumsal Java Çıktı

malkocoglu_3

Servis tarafı Java çözümlerini örnekli ve uygulamalı olarak anlatan Kurumsal Java adlı kitabımız çıktı. Kitap tamamen JBoss, Spring, ITracker, JmxMonitor gibi açık yazılım ürünleri üzerinden ve konuları hakkında yazılmıştır. Kitabın içindekiler listesi buradadır.

ZGRViewer 0.5.0

FZ

graphviz yazılımının e-posta listesindeki bir duyuruya göre, ZGRViewer'ın 0.5.0 sürümü çıkmış.

ZGRViewer, Java ile geliştirilmiş 2.5 boyutlu bir çizge görüntüleyicidir ve Zoomable Visual Transformation Machine'i temel almaktadır. Özel olarak AT&T'nin GraphViz sistemindeki DOT dili ile tanımlanmış ve dot, neato, twopi gibi programlarla işlenmiş çizgeleri göstermek için kullanılmaktadır.

ZGRViewer büyük çizgelerle başa çıkabilecek şekilde tasarlanmıştır ve ZUI (Zoomable User Interface) sayesinde çizge üzerinde kolayca gezinmeye izin vermektedir.

sun.misc.Unsafe ve Jigsaw Projesi

tongucyumruk

Java dünyasını biraz takip eden herkesin dikkatini çekmiştir, son dönemde Java 9 ve Jigsaw projesinin getireceği modüler yapı ile birlikte sun.misc.Unsafe lafı gitgide daha çok duyulur oldu. Peki nedir bu sun.misc.Unsafe?

Mykhailo Kozik'in bu makalesinde detaylı bir şekilde açıkladığı üzere, sun.misc.Unsafe JVM'in bellek koruması ile ilgili garantilerini altüst etmenizi sağlayan bir Java...

Quake 2 Motoru Java'ya Port Edildi!

anonim

id Software'in yazdığı ve GPL lisansı ile dağıttığı Quake 2 motoru Java'ya port edildi. Yeni motoru herhangi bir sırf yapmak için yapılmış projeden ayıran şey performansının C ile yazılmış orjinal motorun performansını yakalayıp hatta geçebilmiş olması. Henüz 1.0 versiyonu çıkmamış olmasına rağmen şimdiden C hızında çalışan bir oyun motorunun üretilebilmiş olması Java'nın akıllardaki imajına uymasa da akla ilginç fikirler getirmiyor değil.

JSF ve Olay Yakalayıcılar

anonim

Bir süredir JSF olay yakalayıcılar (event listeners) ile ilgili aklıma takılan bir soru vardı. JSF gibi tamamen sunucu taraflı olduğu idda edilen bir teknolojide olay yakalama işlemi nasıl gerçekleşiyordu? Bu durum kullanıcı tarafın da javascript kullanımı gerektirir miydi? Eğer gerektiriyorsa o zaman nerde kaldı tamamen sunucu taraflı uygulama geliştirme konsepti?

Sonuç olarak bu soruya j2ee-tr listesinde Bora Güngören'in verdiği yanıtları derleyerek kısa bir bilgi notu oluşturdum. Faydalı olması dileğiyle...