Hibernate konfigurasyonlari ve ornek uygulama

hibernate
  • Turgay Can
  • Tarih

    11 May, 2012
  • Yorum

    0
  • Görüntüleme

    3509
  • İndirme

    0

Hibernate konfigurasyonlari ve ornek uygulama

Bu makalemde Hibernate framework ' u, konfigürasyonları, database ile etkileşimi, veri kaydedilmesi ve getirilmesi işlemlerini anlatmaya çalışacağım.
Kullanılan araçlar:
NetBeans IDE, Hibernate Framework, JDB (Java DB)
Java DB için derbyclient.jar kütüphanemizi ekleyelim.
Hibernate hakkında detaylı bilgiye daha önceki makalemizden ulaşabilirsiniz.

TEST Tablosu
ID
Name

Hibernate konfigurasyonlari ve örnek uygulama

İlk olarak NetBeans'te Standart bir Konsol uygulaması açalım. Adını Hibernate koydum ve ardından aşağıdaki resimlerdeki gibi Hibernate kütüphaneleri ekleyelim.
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama

Şimdi, Hibernate framework'umuzun konfigürasyon ayarlarını yapalım.
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Sonra, HibernateUtil class'ımızı Hibernate framework'ü üzerinden aşağıdaki resimlerdeki gibi üretelim.
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Daha sonra, Hibernate Reverse Engineering Wizard ile Reveng.xml'imizi üretelim.
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Şimdi sıra POJO(Plain Old Java Object) 'yu kullanarak Database Tablomuz ile Java sınıfı arasındaki ilişkiyi xml üzerinde mapping yani eşleştirme işlemi için Database tablomuz TEST yani Test.hbm.xml'i üretmeye. Xml ile birlikte Test sınıfımızda Hibernate framework'u sayesinde otomaik olarka üretilecektir. Üretilen Test sınıfı klasik bir Java Bean'dir. Java Bean ile ilgili makale ve diğer Java class'larından farkına buradan ulaşabilirsiniz.

Şimdi sırasıyla,
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama
Hibernate konfigurasyonlari ve örnek uygulama

MVC yapısındaki Controller mekanizmasının basit bir örneği, Database sınıf objemiz Test ile HibernateUtil sınıfının ilişkisi ile verileri datastructure (List,ArrayList) ile modelliyoruz. Verilerin listelenmesi ve veri kaydedilmesi işlemleri, bu sınıf içinde yapıyoruz.

DataController.java sınıfımız.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controller;

import Model.HibernateUtil;
import Model.Test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author turgay
 */
public class DataController {    

    public List listCourses() {
        //session değerine Hibernate'ın Factory'ı şemasından açılan database session'ının atanması
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction transaction = null;//transaction(hibernate)
        Test course = new Test();//pojo objesinin oluşturduğu Test sınıfı
        List val = new ArrayList();
        try {
            transaction = session.beginTransaction();//session objesini transaction objesine atamak
            List courses = session.createQuery("from Test").list();//query'den dönen sonuçları List içine doldurmak
            for (Iterator iterator = courses.iterator(); iterator.hasNext();) {
                course = (Test) iterator.next();
                val.add(course);//Donen degerleri Test objesine cast edip, list içine atama
            }
            transaction.commit();//baglantıyı commit etmek
        } catch (HibernateException e) {
            transaction.rollback();//hata oluşursa baglantıdaki değerleri rollback ile geri almak
            e.printStackTrace();
        } finally {
            session.close();//baglantıyı kapatmak
            return val;
        }
    }

    public Integer saveCourse(Integer id,String courseName) {
        Session session = HibernateUtil.getSessionFactory().openSession();
        Transaction transaction = null;
        Integer courseId = null;
        try {
            transaction = session.beginTransaction();
            Test course = new Test();
            course.setName(courseName);
            course.setId(id);
            courseId = (Integer)session.save(course);            
            transaction.commit();
            System.out.println(course.getId() + " " + course.getName() + " kaydedildi.");
        } catch (HibernateException e) {
            transaction.rollback();
            e.printStackTrace();
        } finally {
            session.close();
        }
        return courseId;
    }
}

Implementasyon sınıfı

TestHibernate.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Implementation;

import Controller.DataController;
import Model.Test;
import java.util.List;

/**
 *
 * @author turgay
 */
public class TestHibernate {

    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) {
        // TODO code application logic here
        DataController mt = new DataController();//DataController sınıfımızdan mt objesi türettik. Diğer adı ile kompozisyon 
        List courses = mt.listCourses();  //listCourses metoduyla List dönen değerleri Data Model'imize atıyoruz.      
        //mt.saveCourse(6, "Hibernate"); //Yeni ders kaydediyoruz.
        System.out.println(" ID  " + "    NAME");
        for (Test object : courses) {//Data Model'imizde listemizdeki değerleri yazdırıyoruz.
            System.out.println(object.getId() + "        "+object.getName());
        }
    }

}

İşlemlerin sonuç ekranları :
Kaydetmek

Hibernate konfigurasyonlari ve örnek uygulama

Listelemek
Hibernate konfigurasyonlari ve örnek uygulama

0 Yorum..

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

Yorum Yap