Blog

Hibernate Nedir?

hibernate

Hibernate, Java programlama dilinde kullanılan açık kaynaklı bir nesne ilişkisel eşleme (ORM) motoru olarak tanımlanabilir. Bir diğer deyişle Java temelli bir framework’tür. Java sınıfları arasında doğrudan ilişkiler kurmaya yaramaz. Bunun yerine nesneleri bünyesinde depolayarak ve yöneterek veri tabanı işlemlerini yönetir. Yani nesneler ile doğrudan ilişki kurmaz. Hibernate, bilgisayarların deyim yerindeyse uyku moduna geçmesine benzer. Tıpkı uykudan aldığımız enerji depolaması gibi, bilgisayar da enerji tasarrufu yapar. Bu da geliştiricilere daha verimli ve kaliteli bir üretim ortamı hazırlar. 

Hibernate yazılım nesnelerin, ilişkisel veri tabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir. Verileri kaydeder ve sonra geri yükler. Hibernate’in sunduğu hazırda bekletme, ilişkisel veri tabanlarında veri depolamayı oldukça basitleştirir. Ayrıca veriler ile çalışırken SQL ifadelerini kullanmak yerine nesneleri kullanmanıza da izin veren bir nesne/ilişki eşleme aracı olarak bilinir. Kod karmaşıklığını ortadan kaldırmak ve SQL sorguları yazma ihtiyacını da gidermek için tercih edilir. Kodlar ile ortaya çıkan karmaşıklık bu sayede azalır. Doğrudan uygulama kodunuzdan Java nesneleri kullanılmasına olanak sunar.

Hibernate tarafından sağlanan kolaylıkları şu şekilde sınıflandırabiliriz:

  • Hibernate, direkt olarak JDBC kullanmak istemeyen, Veri Erişim Nesnelerini kullanmak isteyen Java geliştiricileri için bir nesne/ilişki eşleme aracı olarak tanımlanabilir. 
  • O/R eşlemesi adı verilen bir soyutlama katman ile nesneler ve ilişkiler eşlenir. Hibernate, ilişkisel tablolar ile MySQL ve PostgreSQL gibi RDBMS sistemleri arasındaki kalıcılığı işleyebilir.
  • Yazılım geliştiricilere görünüşte tanıdık gelmeyen ya da öğrenmesi zor SQL sorguları yerine, tanıdık Java dizmini kullanarak nesnelerle çalışmasına olanak tanır.
  • Hazırda Bekletme ile bilgisayarınızdaki tüm açık uygulamaları belleğe alarak işletim sistemini Hibernate moduna geçirmenizi sağlar.

Bilgisayarındaki tüm uygulamalar ana ekranınızda çalışmaz. Bazı uygulamalar arka planda çalışır. Daha da açmak gerekirse Windows uyku moduna geçer ve uygulamalar arka planda aleni kalır. Fareyi hareket ettirmek ya da klavyedeki bir tuşa basmak bu arka plandaki uygulamaları devreye sokar. Bunun gibi bilgisayar kasası üstündeki güç düğmesine basmak da işletim sistemini uykudaki moduna olmaktan çıkarır. Böylece arka planda kalan uygulamalar, siz aksiyon verdikten sonra çalışmaya devam eder. Buna hibernate özelliği denir. Hibernate, uygulamaları depolamak için bilgisayarınızın işletim sisteminin kurulum dizininde yer alan hiberfile.sys dosyasını sanal bellek olarak kullanır. Bu dosya, işletim sistemi yüklendiğinde otomatik olarak oluşturulur.

Hibernate Framework Hakkında

Hibernate Framework, yazılım alanında çeşitli düzeylerde soyutlama sunan bir çerçeve olarak tanımlanabilir. Hibernate ile programcıların uygulamaları yönetmesi gerekmez. Arka planda hazırda bekletme şeklinde çalışmaya devam eder. Ancak bu çalışma stili, önde gördüğünüz herhangi bir uygulamaya müdahalede bulunmaz. 

Hibernate bazı uygulamaları dahili olarak işler. Bu uygulamalardan biri veritabanına bağlanıp CRUD işlemlerini gerçekleştirmek için sorgular oluşturmasıdır. Oluşturulan sorgular, Java uygulamasındaki kalıcılık mantığı geliştirmek için tercih edilen bir çerçeve olarak bilinir. Kalıcılık mantığı, verilerin uzun süreli kullanım için depolanması ve güvenli bir şekilde işlenmesine fayda sağlar. Bu da Hibernate ile gelen önemli artılardandır. Hibernate, genel anlamıyla bakıldığında veri tabanı yazılımından bağımsız nesneler geliştirmek ve tüm JAVA ve JEE ortamlarında bağımsız kalıcılık mantığı oluşturmak için tercih edilir. Herhangi bir yazılımlı tarafından müdahale gerektirmeyen, hafif, açık kaynaklı bir Java Nesne-İlişkisel Eşleme (ORM) Hibernate ile mümkündür.

Bunun yanında geliştirme sürecinin karmaşıklığını sadeleştirmek ya da azaltmak için çerçeveler, JDBC, Servlet’ler de Hibernate tarafından işlenir. Hibernate, bir veya daha fazla teknoloji için soyutlama katmanı sağlar. Bunu, bir toz bulutunun yeryüzüne inip siz işlerinizi halledene kadar bazı nesneleri ortadan kaldırmasına benzetebilirsiniz. Toz bulutu ortadan kalktığında nasıl ki nesneler geri geliyorsa, Hibernate de bilgisayar donanımlarından herhangi birine basmadığınızda kendi kendini devreye alıyor diyebiliriz. 

Hibernate, aynı zamanda indirilebilir özel bir yazılım. Ancak özel bir yazılım olmasına karşın Hibernate çerçevesi herkesin kullanması için ücretsizdir. Yani bu Hibernate çerçevesine ulaşımı kolaylaştırıyor. Hibernate kaynak kodu birçok web platformlarında mevcuttur.

Kısaca özetlemek gerekirse:

  • Açık kaynak kodlu olması
  • Erişilebilir olması
  • Ücretsiz olması
  • İndirilebilir özel bir yazılım olması
  • Küçük bir boyuta sahip olması
  • Herhangi bir uygulamaya ve geliştirmeye gerek olmaması

en çok tercih edilme nedenleri arasına giriyor.

Hibernate Tarafından Desteklenen İşlevler

Hibernate çerçevesi, otomatikleştirilmiş DDL işlemlerini destekleyen bir ypıdadır. JDBC sayesinde kolay bir şekilde tabloyu manuel olarak oluşturmanız ve her sütunun veri türünü bildirmenizi sağlar. Ancak bunu Hibernate arka planda yapabilir. Örneğin, Tablo oluşturma, Tablo bırakma ve Tablo değiştirme gibi işlemleri yapabilir. Hibernate, birincil anahtarların herhangi bir manuel müdahaleye gerek duyulmadan oluşturulmasını destekler. Hibernate bu işi sizin yerinize yapabilme imkanına sahiptir, yani bunu otomatik olarak yapar. 

Hibernate çerçevesi, veritabanından bağımsız olarak HQL’yi (Hibernate Query Language) destekler. Bunun tam tersi olarak JDBC ise veri tam aksine veri tabanına bağımlıdır. JDBC, kendi içerisinde istisna işlemeyi gerektirir, ancak Hibernate gerektirmez. Burada herhangi bir manuel müdahale olmadan önbelleği desteklemesi ile Hibernate avantaj kazandırır. Buna karşın JDBC öncelleği Hibernate gibi desteklemez. Yani Hibernate, nesneler ve birbirleriyle olan nesne-ilişkisel eşlemesini destekler. JDBC, yapısını da göz önüne alınca nesne yönelimli değildir. JDBC ilkel veriler ile ilgilenir. JDBC’de her kayıt yalnızca bir veridir, yani ilkel bir değerdir. Bu veriler kaydedildiğinde, her kayıt bir nesne olarak temsil edilir.

Neden Hibernate’e İhtiyacımız Var?

Hibernate, bilgisayarınızın uyku modunda da çalışıyor olması gibidir. Bir nevi sistemlerinizin kendisini askıya alma ihtiyacını karşılayan eklerdir. Bunun yanı sıra bir veritabanından veri almak için uygulamanızda aynı kod satırlarını tekrar tekrar yazmak da uğraştırıcı bir iştir. Bazı durumlarda bir veritabanından diğerine geçmek, JDBC kullanarak oops uygulamak ve veri tabanı tabloları arasında eşlemeler oluşturmak ve bu adaptasyonu sağlamak da çok çaba gerektirir. Hibernate çerçevesi olmadan yeniden çalışma yapmak böyle durumlarda bir gerekliliktir. Bu sorunların ortadan kalkması ise Java Hibernate ile mümkündür. 

Hibernate, veritabanı bağlantısı için JDBC kullanıldığında ortaya çıkan tüm bu bağlantı kopukluklarını çözmeye yardımcı olan bir ORM aracıdır. Bundan dolayı da nesneler ile ilişkilendirme yaparken kopuk kopuk adımlar değil, birbirine bağlı bir bütün ortaya koyar.

Hibernate Avantajları

Hibernate, birçok açıdan ciddi avantajlara sahiptir. Bundan dolayı da zaman kazandıran yazılım ürünleri içerisinde sıklıkla tercih edilir. Hibernate kendini veri tabanına bağlar ve sorguları yürütmek için farklı bir sorgu dili veya HQL kullanır. Sorgu yürütüldükten sonra Hibernate, sonuçları uygun eşleşme olan uygulama katmanına eşler. Bu eşleme, tamamen Hibernate yapılandırma XML dosyasında belirtilen özellikler kaynaklı bir nesne üretecektir. Bir oturum yalnızca uygulamanızın veri tabanına bağlanmasına yardımcı olmakla kalmaz, aynı zamanda saklanan kalıcı nesneleri de kaydeder ve alır.

ORM’lerin birçok artısı bulunur. ORM’ler içerisinde yer alan Hibernate de diğer türlerine göre birçok avantaja sahiptir. Hibernate avantajlarını şu şekilde sıralayacak olursak:

  1. Veritabanından bağımsızdır.
  2. Yerleşik bağlantı havuzu uygulamasına sahiptir.
  3. Katmanları olan bir yapısı vardır.
  4. Kalıcı bir JPA sağlayıcısıdır.
  5. Yüksek verimliliğe sahip bir çalışma stili vardır.

İlginizi Çekebilir: SCCM ve Veritabanı Dosyalarının Yapılandırma Ayarlarının Yedeklenme İşlemleri

İlgili Makaleler

Bir Yorum

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu