May
20
2012

Hibernate nedir?

Nesneye yönelik yazılım ve ilişkisel veritabanı kullanımı günümüzde oldukça yaygındır. Bu iki gözde modelin beklide en önemli problemi en az onlar kadar yaygın ve dahası önü açık olan kuruluş uygulamaları(enterprise applications) ile birlikte kullanıldıklarında oldukça karışık, yorucu ve zaman alıcı olmalarıdır. Hibernate bir nesne/ilişkisel eşleme (Object/Relational Mapping) aracıdır. Burada nesne/ilişkisel eşleme terimi nesne modelindeki veri tanımlarının ilişkisel veri modeline eşleme (mapping) tekniğini ifade etmektedir.
Hibernate yalnızca Java sınıflarından veritabanı tablolarına veya Java veri tiplerinde SQL veri tiplerine dönüşümü yapmaz. Hibernate veri sorgulama(data query) ve veri çekme(data retriaval) işlemlerini de kullanıcı için sağlar. Bu özellikleriyle Hibernate geliştirme kolaylığı ve zamandan kazanç sağlar. Hibernate kullanımı olmadan tüm adı anılan işlemler için SQL ve JDBC’nin olanaklarından faydalanılarak el ile(manual) veri işleme(data handling) gerçekleştirilmesi zaruri olacaktır.
Hibernate ne için var? Bu soru için verilebilecek en iyi cevap: Hibernate geliştiricinin ortak veri kalıcılığı(data persistence) yükünü hafifletmek için vardır, olacaktır. Hibernate dağıtıcıya özel(vendor-specific) SQL kodlarının ayıklanmasında ve sonuç kümesi(result set) işlenmesinde çok faydalı bir araçtır. Hibernate nesne ilişkilerini(object relations) desteklediği gibi bileşik tipleri de(composite types) destekler. Bunların yanı sıra Hibernate güçlü bir sorgulama dili(query language) desteğiyle nesneleri veri tabanından çekmeyi, etkili bir şekilde önbelleğe alma (caching) işlerini de etkin bir şekilde gerçekleştirmektedir.Hibernate hemen hemen yaygın tüm veri tabanı sistemleri ile uyumludur(MySQL, HSQLDB)
Nesne/ilişkisel model eşleme(Object/Relational Mapping) matematiksel ilişkiler üzerine kurulu veritabanı ile nesneler, nesnelerin özellikleri ve ilişkileri arasında bağlantı kurma amacına odaklanmıştır. Küçük bir nesnenin veri tabanına aktarımı kolay bir şekilde gerçekleşebilir, ama nesnelerimiz ve veri tabanına kaydetmemiz gereken veri miktarı büyüdükçe, sistemimizdeki nesnelerin ilişkileri karmaşıklaştıkça Nesne/ilişkisel model eşleme(Object/Relational Mapping) içinden çıkılmaz bir hal alabilir. Çünkü karmaşık bir nesne örüntüsü, yabancı anahtarları(foreign key) ve nesneler arası birlikteliği (association) karşımıza ciddi sorunlar olarak çıkarır. İşte burada Hibernate imdadımıza koşar. İyi bir Nesne/ilişkisel model eşleme(Object/Relational Mapping) aracından beklenilen sıradan bir java nesnesinin kalıcılığını basit bir komutla gerçekleştirmesi ve kaydedilmiş kalıcı (persistent) bir java nesnesini geri yüklememizi sağlamalıdır. Aşağıda basit varsayımsal komutlarla bu işlevler somutlaştırılmıştır.
orm.save(nesne);
nesne = orm.load(Kalıcınesne.class, nesneId);
iyi bir Nesne/ilişkisel model eşleme(Object/Relational Mapping) aracı aynı zamanda nesnelerimiz için sorgulama yapmamızı da sağlayabilmelidir:
List aradıgım_nesnelerim = orm.find(
“FROM Nesnelerim nesne WHERE nesne.property = 5”);
List aradıgım_nesneler = orm.find(
“FROM Kişi kişi
WHERE person.evlidir.adres.sokak LIKE %birşeyler%”);

Yazar Hakkında

Harun Balta 63 adet yazısı bulunuyor..

Bilgisayar Mühendisliği Üzerine çalıştığım konular: C# , .Net , Silverlight , WPF , Entity Framework ,MVVM, Oracle ,Pl/Sql

Print Friendly