İçeriğe atla

Hibernate

Hibernate
Geliştirici(ler)Red Hat
Güncel sürüm5.2.1
İşletim sistemiTüm platformlar
TürORM
LisansLGPL
Resmî sitesihibernate.org
Kod deposu Bunu Vikiveri'de düzenleyin

Hibernate, Java platformunda yazılmış bir ORM (Object/Relational Mapping) aracıdır. ORM, nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veri tabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir. NHibernate adında .NET çatısı için yeniden yazılmış bir türevi bulunur.

Hibernate gibi ORM araçlarıyla, bir nesneyi veri tabanına kaydetmek, yeni halini güncellemek ve sorgulama yapmak düz SQL bağlantılarına göre çok kolaydır.

Örneğin, JDBC ile veri tabanına bir kayıt eklemek için şuna benzer bir kod yazılır:

stmt.executeUpdate( "INSERT INTO KAHVE VALUES ('Colombian', 101, 7.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).

Hibernate gibi ORM araçlarının en önemli faydası, kod yazımını kısaltmak veya kolaylaştırmaktan öte, yazılım bakımını kolaylaştırmasıdır. Veri tabanı temelli uygulamalarda, kodun 1/3´ü veri tabanı erişimine yöneliktir. Veri tabanı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 edilir. Hibernate kullanılan yazılımlarda, veri tabanındaki değişikliklerde yapılması gereken sadece nesnelerle tabloların birbirine nasıl eşleştirildiğinin (mapping) gözden geçirilmesidir.

Hibernate, son 3 sene içinde, kurumsal Java uygulamalarında fiilen standart haline gelmiştir. EJB 2.0 sürümündeki Entity Beanler, yeni EJB 3.0 sürümünde Hibernate´e yakın bir API hâline gelmiştir.

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">MySQL</span>

MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı, çok kullanıcılı, hızlı ve sağlam bir veri tabanı yönetim sistemidir.

<span class="mw-page-title-main">Scala (programlama dili)</span>

Scala, hem nesne yönelimli programlamayı hem de fonksiyonel programlamayı destekleyen, statik olarak yazılmış güçlü bir genel amaçlı programlama dilidir. Kısa ve öz olacak şekilde tasarlanan Scala'nın tasarım kararlarının çoğu Java eleştirilerini ele almayı amaçlıyor.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

SQL, verileri yönetmek ve tasarlamak için kullanılan bir dildir. SQL, kendi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir; veritabanlarında bulunan sistemlere bilgi ekleme, bilgi değiştirme, bilgi çıkarma ve bilgi sorgulama için kullanılmaktadır. Özellikle de ilişkisel veritabanı sistemleri üzerinde yoğun olarak kullanılmaktadır. SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

ABAP,İngilizce Advanced Business Application Programming kelimelerinin baş harflerinden oluşan bir kısaltmadır ve Alman yazılım şirketi SAP tarafından geliştirilen üst seviye bir nesne tabanlı programlama dilidir. SAP'nin iş uygulamaları geliştirmek için kullanılan NetWeaver platformunun parçası olan Web Uygulama Sunucusu'nu programlamak amacıyla kullanılır. Sözdizimi COBOL'a benzemektedir.

<span class="mw-page-title-main">Microsoft Access</span>

Microsoft Access ya da Microsoft Office Access Microsoft'un ilişkisel veri tabanı yönetim sistemidir. Microsoft Access Jet veri tabanı motorunu, grafiksel kullanıcı arayüzünü ve yazılım araçlarını aynı paketin içinde birleştirir.

<span class="mw-page-title-main">Apache Ant</span>

Apache Ant, yazılım inşası süreçlerini otomatikleştirmeye yarayan bir araçtır. Make'e benzeyen uygulama, Java ile geliştirilmiş olup Java platformunu gerektirmekte ve Java projelerinde sıkça kullanılmaktadır.

EJB QL veya EJB-QL Enterprise Java Beans için bir veritabanı sorgulama dili olup her veritabanında koşabilir. J2EE uygulamalarında kullanılır. SQL'e kıyasla daha karmaşık olup ifâde gücü daha azdır.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

Nesne-İlişkisel Eşleme, nesne tabanlı programlama dilleri yapısına uygun olmayan katı veritabanı sorguları yerine veritabanı yapısının bir nesne gibi düşünülerek yazılım geliştirilmesine olanak sağlayan programlama teknolojisidir.

<span class="mw-page-title-main">SQL enjeksiyonu</span>

SQL enjeksiyonu, veri tabanına dayalı uygulamalara saldırmak için kullanılan bir atak tekniğidir; burada saldırgan SQL dili özelliklerinden faydalanarak standart uygulama ekranındaki ilgili alana yeni SQL ifadelerini ekler.. SQL enjeksiyonu, uygulamaların yazılımları içindeki bir güvenlik açığından faydalanır, örneğin, uygulamanın kullanıcı giriş bilgileri beklediği kısma SQL ifadeleri gömülür, eğer gelen verinin içeriği uygulama içerisinde filtrelenmiyorsa veya hatalı şekilde filtreleniyorsa, uygulamanın, içine gömülmüş olan kodla beraber hiçbir hata vermeden çalıştığı görülür. SQL enjeksiyonu, çoğunlukla web siteleri için kullanılan bir saldırı türü olarak bilinse de SQL veri tabanına dayalı tüm uygulamalarda gerçeklenebilir.

Bilgisayar yazılımında veri erişim katmanı, tutarlı bir depoda saklanan veriye basitçe erişim sağlayan bir bilgisayar programı katmanıdır, bu tutarlı depoya varlık-ilişki veritabanı örneği verilebilir. Bu yapı ismi Microsoft.ASP.NET ortamlarında yaygın bir şekilde kullanılır.

Doctrine sürerlik (persistence) servisleri ile sürerlik ile ilgili fonksiyonaliteyi sunan PHP kütüphaneleri grubudur. Önde gelen ürünleri nesne-ilişkisel eşleme ve veritabanı soyutlama katmanıdır.

Dart, ilk kez Google tarafından geliştirilen ve daha sonraları ECMA tarafından standart (ECMA-408) haline getirilen açık kaynaklı ve genel-amaçlı bir programlama dilidir. Dart dili kullanılarak web, sunucu, mobil uygulamalar ve IoT cihazları geliştirilebilir.

<span class="mw-page-title-main">Dalvik (yazılım)</span> Google tarafından yazılmış android için programlama dili

Dalvik yazılımı Google tarafından geliştirilmiş, Android için yazılmış uygulamaları yürüten ve şu an durdurulan sanal makine (VM) 'dir. Dalvik, Android 4.4 "KitKat" ve önceki Android sürümlerinin yazılım yığınının ayrılmaz bir parçasıdır; tipik olarak cep telefonları ve tablet bilgisayarlar gibi mobil cihazlarda ve daha yakınlarda Smart TV'ler ve giyilebilir bilgisayar gibi cihazlarda kullanılırdı. Dalvik, açık kaynaklı yazılım, Dan Bornstein tarafından yazılmıştır ve ismini Eyjafjörður, İzlanda da yerleşen Dalvik balıkçı köyünden almıştır. Android için programlar yaygın olarak Java ile yazılmış ve Java sanal makinesi için baytkodu derlemiştir. Daha sonra Dalvik bytecodeye çevrilmiş ve .dex ve .odex dosyalarında saklanır. Kompakt Dalvik yürütülebilir biçimi sistemleri için tasarlanmış, bellek ve işlemci hızı açısından sınırlandırılmıştır.

Carbon, Macintosh bilgisayarları çalıştıran işletim sistemi olan Mac OS X için Apple'ın C tabanlı uygulama programlama arayüzlerinden (API) biridir. Carbon, Mac OS 8 ve Mac OS 9 işletim sistemlerinde çalışan programlar için iyi bir geriye dönük uyumluluk sağlamıştır. Geliştiriciler, “klasik” Mac OS ve Macintosh işletim sistemleri yazılımlarını OS X platformuna taşımak için uygulamayı azami çaba harcayarak çok az bir çaba ile kullanabilirler. OpenStep'te ortaya çıkan tamamen farklı Cocoa API sistemidir.

<span class="mw-page-title-main">FBReader</span>

FBReader, Linux, Microsoft Windows, Android ve diğer platformlar için tasarlanmış bir e-kitap okuyucudur.