8.12.2010

Hibernate Nedir ?

   Öncelikle bu konu hakkında pek bilginiz yoksa, bu bahsedeceğimiz Hibernate Ne değildir sorusuna cevap verelim sonra gerekli açıklamalara geçelim.
*Windows'un kapatma seçeneği olan bilgisayarı kapatırken ram'deki tüm veriyi harddiske atan seçenek gelebilir aklınıza, bu da güzel bir seçenektir bilgisayarımız hızlı açılır farkedilir biçimde ama bu hibernate'den bahsetmeyeceğim..( not: Veriler hdde kayıtlı olduğundan, notebookun pilinin de şarjının da bitmesi durumunda dahi, verilerin kaybolmamasını sağlayan güzel özellik:)
*Latince kökenli olan hibernatusi yani kış uykusuna yatmak da değil bu bahsedeceğimiz Hibernate.
~ ~ ~ ~
   Bir ORM aracı olan (Object Relational Mapping), çok kullanışlı, transaction yönetimini kendisi yapan orta katman bir framework diyebiliriz. Bizim veritabanımız var ve biz buna ulaşmak istiyoruz, database ile aramızda
bir framework olan Hibernate bize birçok kolaylıklar sağlamaktadır, hız bakımından artısı yok denilebilir ama kod yazan bir Java'cı için kodları azaltmak demektir Hibernate:)

-ORM, nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veritabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir kısaca.
-Hibernate gibi ORM araçlarıyla, bir nesneyi veritabanına kaydetmek, yeni halini güncellemek ve sorgulama yapmak düz SQL bağlantılarına göre çok kolaydır ve bu zamana kadar yazmış olduğumuz klasik sql sorgularını kullanmıyoruz.

Örneğin, JDBC ile veritabanına bir kayıt eklemek için aşağıdakine benzer bir kod yazılır:
stmt.executeUpdate( "INSERT INTO KAHVE VALUES ('Turkish', 101, 9.99, 0, 0)");

Burada, "KAHVE" tablosuna bir kayıt eklenmekte, böyle bir işlemi Hibernate ile yapmak için:
session.saveOrUpdate(kahve);
kahve, bildiğimiz düz bir java nesnesidir (POJO - Plain Old Java Object).

-Hibernate gibi ORM araçlarının en önemli faydası, kod yazmayı kısaltmak veya kolaylaştırmanın yanında, yazılım bakımını kolaylaştırmasıdır.  Veritabanı temelli uygulamalarda, kodun 1/3´ü veritabaný erişimine yöneliktir diyebiliriz:)

-Veritabanındaki bir kolonunun tipinin değişmesi, yeni bir kolon eklenmesi gibi değişiklikler, bütün veri erişim kodunu tekrar gözden geçirmeyi gerektirir. Hibernate ile bu gözden geçirmeden çok yüksek oranda tasarruf edilebilir.

- Hibernate kullanılan yazılımlarda, veritabanındaki değişikliklerde yapılması gereken sadece nesnelerle tabloların birbirine nasıl eşleştirildiğinin (mapping) gözden geçirilmesidir.(Mapping iki türlü olmaktadır, yeni çıkan mapping yöntemi olan annotationdan sonraki yazılarda bahsedeceğim inş.)

**Hibernate ile alakalı bazı bilgiler vermeye çalıştım, kullanmıyorsanız ve bilginiz yoksa zaman kaybetmeden bakın derim ;)

Teşekkürler..

Hiç yorum yok:

Yorum Gönder