Adım adım Hibernate - Nedir?

Merhabalar Herkese,

Sizlere Hibernate'den bahsedeceğim. Nedir ? Ne değildir ? Nerede kullanılır gibi konulara değineceğim... İlk önce biraz teori.. Daha sonra ise basit bir uygulama..

Yazının içeriği adım adım öğrenme şeklinde olacak ama ilerleyişe göre değişebilir tabi bu. Devamı başka bir yazıya da sarkabilir şimdiden söylemesi..

Eminim ki öyle ya da böyle ilişkisel veri tabanları (Relational Database) ile haşır neşir olmuşsunuzdur. Belki küçük bir projeniz olmuştur belki de çok yoğun veri tabanı işlemleri yapan bir projede yer almışsınızdır.. Sonuç olarak yaptığınız uygulama bir yerde veritabanına değmiştir. İlişkisel veri tabanlarına veri yazmak için bir jdbc bağlantısına ve ilgili veriyi gönderebilmek için bir SQL sorgusuna ihtiyacımız var. İş bu noktaya geldiğinde ise o zamana nesneler üzerinden hareket ederken bir anda veriler üzerinden hareket etmeye başlarız..

Örnek vermek gerekirse ;

Bu noktaya kadar ;

Person person = new Person ();
person.setName("Nurettin");
person.getName();
......

İle devam eden sürec ;

INSERT INTO mytable (name, surname , country) VALUES ("Nurettin","YAKIT","Türkiye")

Halini almıştır. Yani artık object oriented kavramı bitmiş , objemiz ölmüş ve veri yığınına dönüşmüştür.

Hibernate ise objenin, son dokunduğumuz (ki burada veritabanına kayıt noktası oluyor) ana kadar obje olarak kalmasını sağlıyor. Bu demek değildir ki veritabanına objeyi gönderiyoruz.. Sonuç olarak veri tabanı, sadece verilerin bulunduğu bir yer. Objemiz yine verilerine bölünüyor ve ilgili yerlere kaydediliyor. Ama bizim yazdığımız uygulamada bu kısımları hibernate hallediyor ve biz yine object oriented yöntemlerle devam ediyoruz yolumuza..

Tabi bunun yanında transaction yönetimini kolaylaştırması, yazdığımız uygulamanın farklı veri tabanlarına uyumlu olmasını sağlaması, herhangi bir veritabanı değişikliğinin (tablo içeriğinin değişmesi, tablonun değişmesi...) çok kolay yönetilmesi ve uygulamamızı etkilemesinin önüne geçilmesi ve daha birçok konuda sağladıklarından bahsetmiyorum bile..


İşin pratik kısmına (uygulama) yarın değineceğim.. Şimdilik iyi geceler..

No comments: