Mevlüt Becerikli

Basit diye bir şey yok !!! Bilmeyene 2+2 bile zor…

'Hibernate' kategorisi icin arsiv

Hibernate’ te Sorgular…

Yazan: Mevlüt Becerikli Tarih: Eki 13th, 2009 | Kategori:: Hibernate, Java

Bir ORM Framework’ ü olan Hibernate ile veritabanımızı 3 şekilde sorgulayabiliriz…

  1. session.createQuery()

    HQL syntax’ ını kullanarak sorgu nesnelerimizi oluşturabiliriz. Örn;

    Query sorgu = session.createQuery(”from Ogrenci s where s.ad like ‘k%’ “);

  2. session.createSQLQuery()

    SQL syntax’ ını kullanarak sorgu nesnelerimizi oluşturabiliriz. Örn;

    Query sorgu = session.createSQLQuery(”Select * from Ogrenci”);

  3. session.createCriteria()

    Criteria API‘ sini kullanarak basit, parametrik, karmaşık tüm sorgularımı çalıştırabiliriz.
    Sorgu ifadelerini elle yazmak istemeyenler için oldukça kullanışlıdır. Örn;

    Criteria criteria = session.createCriteria(Ogrenci.class)

İyi Çalışmalar…


JDBC & Hibernate arasındaki 11 fark …

Yazan: Mevlüt Becerikli Tarih: Eki 12th, 2009 | Kategori:: Hibernate, Java
  1. Hibernate veritabanından bagımsızdır. Kodunuz Oracle, MySQL, SQLServer..vs. farketmez hepsi için çalışacaktır. JDBC sorguları ise veritabanına özel olabilir.
  2. Hibernate, nesneler bütünü olduğundan SQL dilini öğrenmek zorunda deilsiniz. Sadece java dili bilgisi yeter. Bir tabloyu bir nesne olarak oluşturup Hibernate aracılığı ile veritabanında oluşturabilirsiniz. JDBC ile programlama SQL bilgisi gerektirir.
  3. Hibernate ile SQL şart olmadığından SQL ifadelerinin tuning işlemini de düşünmemize gerek kalmıyor. Hibernate özelliği olan Criteria Queries ile yaptığınız sorgular, Hibernate otomatik olarak performans ayarlamasını yapıp olası en iyi performansı size sağlayacaktır. JDBC seçeneğinde ise SQL inizi tune etme gibi bir ihtiyaç vardır.
  4. Hibernate ‘ in bir diğer özelliğide sunduğu Cache mekanizmasıdır (2 seviyeli). Bu mekanizma, verimizi daha performanslı saklamamızı ve kullanmamızı sağlayacaktır. JDBC ile yapılan uygulamalarda programlama tarafında kendi Cache mekanizmamızı kurmamız gerekecektir.
  5. Hibernate, yaptığımız sorgularıda Cache işlemine tabi tutabilmektedir. Bu sayede, hem veritabanının durumu hem de sorgularımız hakkında faydalı olabilecek istatistiksel bilgileri bize verir. JDBC‘ nin bize istatistiksel açıdan bir getirisi yoktur.
  6. Hibernate ile sorgu yazmamıza gerek olmadığından daha hızlı development yapabiliriz.
  7. Hibernate ile bağlantı havuzu (connection pool) oluşturma gibi bir ihtiyacımız yoktur.  c3p0 ı kullanabiliriz. JDBC ile kendi bağlantı havuzumuzu yazmamız gerekecektir.
  8. XML formadında olan Hibernate konfigurasyon dosyasından tablolar arası tüm ilişkileri rahatlıkla görebilir ve okuyabiliriz.
  9. “lazy=false” ifadesini kullanarak nesneleri başlangıçta yükleyebiliriz. JDBC nin böyle bir desteği yok.
  10. Hibernate, otomatik olarak kayıtları versiyonlamamızı sağlar ama JDBC de bu da yok.
  11. Hibernate‘ in, Search işlemleri ile için Java tabanlı Text Indexleme ve Full-Text Search motoru olan LUCENE ile halihazırda entegrasyonu mevcuttur. JDBC ile bunu da kendimiz implemente etmemiz gerekecektir.


Not :
Bu maddeler hibernate’ i kullanmamız için sebep gibi gözükse de, Hibernate’ in de dezavantajları mevcut olup seçim tamamen ihtiyaçlarımıza göre değişmektedir. Benimkisi sadece fikir sahibi olmanızı sağlamak…

İyi Çalışmalar…