IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   JSF/JSP/Servlet (https://www.ircforumlari.net/jsf-jsp-servlet/)
-   -   Java : Hibernate konfigurasyonlari ve ornek uygulama (https://www.ircforumlari.net/jsf-jsp-servlet/481495-java-hibernate-konfigurasyonlari-ve-ornek-uygulama.html)

YazılımMimarı 11 Mayıs 2012 23:41

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- Kodu:

TEST Tablosu
ID
Name 

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

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

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

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

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

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

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

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

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


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


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


Ş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,

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

[Ü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- Kodu:

/*
 * 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- Kodu:

/*
 * 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

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

Listelemek

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

[Ü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 ;)

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


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 20:22.

Powered by vBulletin® Version 3.8.8 Beta 3
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2024 IRCForumlari.Net