IRC ve mIRC Kullanıcılarının Buluşma Noktası
  Mobil Sohbet, Sohbet ve Sohbet Odaları




1Beğeni(ler)
  • 1 Post By YazılımMimarı

Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 28 Nisan 2012, 00:21   #1
Çevrimdışı
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...]
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...]
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Cevapla

Etiketler
hibernate, java, kodlapaylas.com

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Kapalı
Pingbacks are Açık
Refbacks are Açık