Hibernate Dersleri 3 – Session İşlemleri
Hibernate Derslerine devam ediyoruz. Hibernate ile veritabanına bağlanma işlemlerini yönetmek için Session Factory sınıfını kullanıyoruz. Session Factory sınfı yardımı ile Hibernate belirtilen veritabanına bağlanma işlemleri yönetilir.
Veritabanı işlemleri yapmaya başlamadan önce bağlantıyı açmak ve kapatmak için sınıfımızı oluşturalım.
private SessionFactory sessionFactory; sessionFactory = new Configuration().configure().buildSessionFactory();
Session Factory sınıfından bir değişken oluştuyoruz. Bu değişkene yapılandırma dosyalarımızda bulunan ilgili propertyleri setliyoruz. Sonrasında ise
Session session=sessionFactory.openSession();
Veritabanı bağlantımızı açarak sessionumuzu başlatıyoruz. Bu başlatma işleminden sonra ise ileriki derslerde göreceğimiz kaydetme, silme, listeleme, güncelleme işlemlerini yani asıl yapmak istediğimiz işlemleri bu adımdan sonra yapmaktayız.
Yapmak istediğimiz işlemler bittikten sonra ise sessionumuzu kapatmamız gerekmektedir.
session.close();
Her veritabanı işleminde bu gördüğümüz session işlemini açıp kapatmamız gerekmektedir. Bu kod işlemini kısaltmak için bir sınıf yazarak her zaman kolaylıkla session işlemini başlatarak veritabanı işlemlerimizi yapmak için genel olarak kabul görmüş HibernateUtil.java adında bir sınıf yaratılmaktadır. Google’da HibernateUtil yazarak bu yapıya kolaylıkla da ulaşabilirsiniz.
Derslerimizde de veritabanı işlemlerini yapmak için bir HibernateUtil.java sınıfı oluşturacağız ve diğer derslerimizde bu sınıf üzerinden sessionumuzu açarak işlemlerimizi gerçekleştireceğiz.
public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { System.err.println("SessionFactory oluşturulamadı." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { getSessionFactory().close(); } }
Bu SessionFactory sınıfımızı kullanarak her işlemimizde session açarak işlemimize devam edeceğiz.
Önceki : Mapping | Hibernate Dersleri | Sonraki: Kaydetme İşlemi |
private SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Şu kodun mantığını tam olarak kavrayamadım. Yeni Session factoryden instance oluşturmak istiyoruz. “Configuration().configure().buildSessionFactory();” bu ksımda tam olarak naptığımızı anlayamadım. Configuration classının içindeki configure(“”) metodu sayesinde config dosyasının yerini gösterip, buildSessionFactory() metoduyla da sessionFactoryi miyaratış oluyoruz