Hibernate ile iki farkli database servisinin kullanilmasi

hibernate
  • Turgay Can
  • Tarih

    06 Jun, 2012
  • Yorum

    0
  • Görüntüleme

    2067
  • İndirme

    0

Hibernate ile iki farkli database servisinin kullanilmasi

Merhaba,

Bu yazımda Hibernate OR/M aracı ile aynı proje içinde birden fazla database servisinin nasıl kullanılacağını anlatmaya çalışacağım. Öncelikle senaryomuzu düşünelim. Bir projemiz var ve iki ayrı database servisi üzerine inşa edileceğini düşünelim ve Hibernate framework'ünüde OR/M tarafında kullanacağımızı biliyoruz. Klasik olarak, öncelikle Hibernate ile ik database'imize daha sonrada ikinci database'imize bağlanalım.
İlk database servisimiz : JavaDB, ikinci database servisimiz : PostgreSQL
Bu makalemde Hibernate konfigürasyonlarının nasıl yapıldığını detaylı bir şekilde imajlar yardımı ile anlatmıştım. Şimdi ikinci bir database servisinin eklenmesi ve konfigürasyon ayarlarını anlatacağım.
İkinci Database servisimiz olan PostgreSQL için JDBC jar'ını var olan projemize ekleyelim. Daha sonra yine Hibernate konfigurasyonlari ve ornek uygulama makalemizdeki gibi sırası ile konfigürasyon dosyalarımızı ekleyelim fakat ekler iken, isimlerini farklı verelim. Sırası ile cfg.xml,rvng.xm,hbml.xml ve HibernateUtil bağlantı sınıfımızı yarattıktan sonra şu değişiklikleri yapalım.

İlk JavaDB database servisimizin baglantı sınıfı olan ;
HibernateUtil.java

public class HibernateUtil {

    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure(**"hibernate.cfg.xml"**).buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

İkinci baglantı sınıfımız PostgreSQL için,
HibernateUtil2.java

public class HibernateUtil {

    private static final SessionFactory sessionFactory;

    static {
        try {
            // Create the SessionFactory from standard (hibernate.cfg.xml) 
            // config file.
            sessionFactory = new AnnotationConfiguration().configure("hibernate2.cfg.xml").buildSessionFactory();
        } catch (Throwable ex) {
            // Log the exception. 
            System.err.println("Initial SessionFactory creation failed." + ex);
            throw new ExceptionInInitializerError(ex);
        }
    }

    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}

Test ederken baglantıları ;

 **Session session = HibernateUtil.getSessionFactory().openSession(); // JavaDB için`**

 **Session session = HibernateUtil2.getSessionFactory().openSession(); //PostgreSQL için`**

0 Yorum..

Yorum yapmak için "Giriş yapın" yada "Misafir üye" olarak yorum yapabilirsiniz.

Yorum Yap