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

Yeni Teknolojiler İle Fosil Teknolojilere Bağlanmak

malkocoglu

Projelerde, her ne kadar tamamen yeni teknolojiler ile işlem yapmak istesek de, bazen eski (fosil) teknolojiler ile yanyana çözümler üretmek sorunda kalıyoruz. Mesela bir AS/400 mainframe bilgisayara bağlanmak, Excel hesap tablosundan değerler okumak gibi.. (Excel'in fosil olarak addedilmesinin sebebi, formatının 'kapalı' oluşudur).

İşte bu gibi durumlarda, Java için elimizde olan imkanlardan örnekler...

Java İle Excel Nasıl Okunur?

Java ile AS/400'e Bağlanmak

Java Görsel Bileşenleri ile Zoom In/Zoom Out

yetgin

FM müdavimlerinden yetgin Java ile Zoom In/Zoom Out özelliğinin nasıl kodlanacağını şurada açıklamış.

IBM'den Java 6 için en hızlı YGS(SDK)

mehmeterten

IBM, Java topluluğunun ilgisini çekmesi ve geribildirimleri toplamak amacıyla Java 6 için bir SDK(Software Development Kit-Yazılım Geliştirme Seti) ve sponsorluğunu yaptığı bir program (Early Release Program) yayınladı

Java'nın Hücresel Telefon sürümünde güvenlik açığı

Soulblighter

Polonya'lı bir güvenlik araçtırmacısı Java'nın hücresel telefonlar için olan sürümünde iki güvenlik açığı tespit etti. Açıklar gizli bilgilere ulaşılmasını ve telefonun kilitlenmesine neden oluyor.

Açığı tespit eden Adam Gowdiak, güvenlik açığına neden olan programın her telefondan çalışmadığını söyledi. Yaptığı testte ise bir Nokia 6310i hücresel telefonuna saldırı düzenledi. Yapılan saldırı testi dört saat sürdü.

Hibernate Performans Testi

malkocoglu_2

Java dünyasnın sevilen aracı Hibernate hakkında bir performans testi gerçekleştirildi. Bu yeni teknolojiyi, yerini almaya talip olduğu eski veri erişim teknolisi JDBC ile kafa kafaya yarıştırdık. İlk sonuçlar gelecek vaad edici gözüküyor. Önbellek kulanımı, kullanım rahatlığı açısından geleceğin araryüzü olmaya talip Hibernate, bu sınavdan yüzünüm akıyla çıktı gibi gözüküyor.

Detaylar için

http://www.bilgidata.com/pdfs//hibernateperftest.pdf

Editörün notu: Bu belge de LaTeX ile yazılmış, bu bir tesadüf olamaz! ;-)