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




Yeni Konu aç Cevapla
 
LinkBack Seçenekler Stil
Alt 11 Mayıs 2012, 23:41   #1
Çevrimdışı
Java : 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 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
TEST Tablosu
ID
Name 


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


İ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.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Şimdi, Hibernate framework'umuzun konfigürasyon ayarlarını yapalım.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Sonra, HibernateUtil class'ımızı Hibernate framework'ü üzerinden aşağıdaki resimlerdeki gibi üretelim.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Sonra, HibernateUtil class'ımızı Hibernate framework'ü üzerinden aşağıdaki resimlerdeki gibi üretelim.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Daha sonra, Hibernate Reverse Engineering Wizard ile Reveng.xml'imizi üretelim.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Ş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 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].

Şimdi sırasıyla,


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]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.
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*
 * 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;

/**
 *
 * [MENTION=21475]AuthoR[/MENTION] 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 = (Testiterator.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

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*
 * 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;

/**
 *
 * [MENTION=21475]AuthoR[/MENTION] turgay
 */
public class TestHibernate {

    
/**
     * [MENTION=81769]para[/MENTION]m 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<Testcourses 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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Listelemek


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Uygulama ve anlatım tamamı ile bana aittir. Önce kendi websitemde ve devamında wardom'da paylaşmaktan keyif duyarım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bir sonraki makalem, JSF (view framework) çatısı ile Hibernate (database model framework) çatısının beraber kullanımı olacaktır. Örnek bir web uygulamasıda içinde olacaktır.

Saygılarımla.

Turgay Can
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 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
TEST Tablosu
ID
Name 


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


İ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.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Şimdi, Hibernate framework'umuzun konfigürasyon ayarlarını yapalım.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Sonra, HibernateUtil class'ımızı Hibernate framework'ü üzerinden aşağıdaki resimlerdeki gibi üretelim.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Sonra, HibernateUtil class'ımızı Hibernate framework'ü üzerinden aşağıdaki resimlerdeki gibi üretelim.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Daha sonra, Hibernate Reverse Engineering Wizard ile Reveng.xml'imizi üretelim.



Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.



Ş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 [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...].

Şimdi sırasıyla,


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]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.
PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*
 * 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;

/**
 *
 * [MENTION=21475]AuthoR[/MENTION] 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 = (Testiterator.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

PHP Kod:   Kodu kopyalamak için üzerine çift tıklayın!
/*
 * 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;

/**
 *
 * [MENTION=21475]AuthoR[/MENTION] turgay
 */
public class TestHibernate {

    
/**
     * [MENTION=81769]para[/MENTION]m 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<Testcourses 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


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Listelemek


Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]

Uygulama ve anlatım tamamı ile bana aittir. Önce kendi websitemde ve devamında wardom'da paylaşmaktan keyif duyarım
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.


Bir sonraki makalem, JSF (view framework) çatısı ile Hibernate (database model framework) çatısının beraber kullanımı olacaktır. Örnek bir web uygulamasıda içinde olacaktır.

Saygılarımla.

Turgay Can
  Alıntı ile Cevapla

IRCForumlari.NET Reklamlar
radyo44.com.tr
Cevapla

Etiketler
hibernate, java, kodlapaylas.com, konfigurasyonlari, ornek, uygulama

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


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
Java Swing/AWT | FX Fonzerelli Java 3 21 Temmuz 2012 19:16
Hibernate YazılımMimarı JSF/JSP/Servlet 0 28 Nisan 2012 00:21
Java Me ile Nokia için uygulama geliştirme Bulut Nokia 1 12 Nisan 2012 16:58