IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   JSF/JSP/Servlet (https://www.ircforumlari.net/jsf-jsp-servlet/)
-   -   Hibernate (https://www.ircforumlari.net/jsf-jsp-servlet/477327-hibernate.html)

YazılımMimarı 28 Nisan 2012 00:21

Hibernate
 
Bu makalemde en çok kullanılan O/RM araçlarından biri olan hibernate hakkında bilgi vermeye çalışacağım.
Hibernate genel anlamda Java sınıflarından veritabanı tablolarına dönüşümü ya da Java veri tiplerinden SQL veri tiplerine dönüşümü gerçekleştirir. Ayrıca veri sorgulama ve veri çekme işlemlerini de kullanıcı için sağlar. Bu özellikleriyle Hibernate uygulamaların geliştirilme aşamasında çok büyük kolaylık ve zamandan kazanç sağlar. Hibernate kullanmadan JDBC ile veri tabanına erişmek mümkündür. Ancak veri tabanındaki tablo sayısı arttığında buna bağlı olarak tablolar arası ilişkiler de artacaktır. Uygulama büyüdükçe bu ilişkiler çok karmaşık bir hal alabilir. Veri tabanı işlemleri için connection açma kapama, ilişkili tablolar için çok karmaşık SQL’ler yazma, aynı fonksiyon içerisinde birden fazla connection almama gibi dikkat etmemiz gereken işler artacaktır. Bu işlemleri yaparken yapacağımız en ufak hata uygulamanın tümünü etkileyecektir. Uygulamamızın mimarisi ne kadar düzgün olursa yapısı da bir o kadar karmaşık olacaktır. Genellikle de en düzgün yapı en karmaşık olanıdır.
Hibernate, hemen hemen yaygın tüm veri tabanı sistemleri ile uyumludur. Bu özelliği ile çok fazla kurum tarafından da kullanılmaktadır.
Hibernate veri kalıcılığını (persistence) sağlamak için veri tabanına karşılık gelen sınıfları ve bu sınıfların konfigurasyon dosyalarını kullanır. Ayrıca hangi veri tabanına nasıl bağlanılacağı bilgilerinin tutulduğu bir XML dosyası da vardır. Sınıflar için kullanılan konfigurasyon dosyalarında hangi sınıfın veri tabanındaki hangi tabloya karşılık geldiği bilgileri ile, kolon özellikleri (primary key, foreign key) tutulur. Sınıflar için kullanılan bu konfigurasyon dosyaları eskiden bir metin dosyasında (XML dosyasında) saklanırken şimdi annotation’lar ile ifade edilmektedir.
SessionFactory : Normal Factory sınıflarının yaptığı işi yapıyor. Hibernate için Hibernate session’ı yaratıyor. Hibernate, her yaratılan thread için tek bir Hibernate Session’ı olmasını bekler. (ThreadLocal sınıfını inceleyiniz) Transactionlar tarafından yönlendirilen veriler için bir çeşit ikincil seviye önbellek tutar.
Session : Session uygulama katmanı ve persistent katman arasındaki iletişimi sağlar. Session nesnelere bir identifier ile erişimi, nesneler arası gezinmeyi saglar. Session, JDBC bağlantısını transaction’lar için bir factory sınıfı olarak görür.
Persistent Nesneler : Bu nesneler sıradan JavaBean’ler olabilirler, ama en önemli özellikleri halihazırda tek bir Session nesnesiyle ilişkili olmalarıdır. İçlerinde iş yapan metodlar da olabilir. Session kapanır kapanmaz, bu nesnelerin Session ile ilişkileri sona erer ve uygulama katmanından yönlendirilmeye, kullanılmaya hazır duruma geçerler.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 12:45.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net