Merih Forum Programlama ve yazılım algoritmalar programlama java / javascript
Hibernate’e Giriş (Veritabanına Bağlanmak ve Sınıfları Haritalamak)

  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Hibernate’e Giriş (Veritabanına Bağlanmak ve Sınıfları Haritalamak)

 
#1

İlk olarak hibernate kütüphanelerini,mysql jdbc kütüphanelerini indireceğiz.Bu serimizde veri tabanı sistemi olarak mysql kullanacağız.Derslerin proje dosyalarını github üzerinden indireblirsiniz,devamı gelecek olan derslerin dokumantasyonlarını ve kaynak kodlarını da yüklüyor olacağım.
İlk olarak hibernate indirmek için bu adresten en stabil sürümünü indirmenizi öneririm,bu yazıyı yazdığımda en kararlı 4.3.10 sürümüydü. http://hibernate.org/orm/downloads/
Mysql kullanacağız dedik ve mysql bağlantımız için bir mysql sunucusuna bir veritabanı yönetim sistemine ve java ile bağlantı sağlayabilmek için jdbc kütüphaneleri kullanacağız.
Mysql server:http://dev.mysql.com/downloads/mysql/ eğer sunucu üzerinde bir mysql server varsa ve onu kullanacaksanız bilgisayarınıza tekrardan mysql server kurmaya gerek yok.Sunucu üzerinde bir veritabanı oluşturarak ip üzerinden bağlantı sağlayabilirsiniz.
Mysql Workbench:http://dev.mysql.com/downloads/workbench/ veritabanlarımızı yönetmek için kullanacağımız veritabanı yönetim yazılımı.Eğer bir linux dağıtımı kullanıyorsanız paket yöneticinizden direk olarak indirebilirsiniz,aksi taktirde bazı kütüphane sorunları çıkartabilir.
Mysql JDBC:http://dev.mysql.com/downloads/connector/j/3.1.html java ile mysql veritabanımıza bağlanabilmek için jdbc kütüphanelerine ihtiyaç duyacağız.
Gerekli dosyaları indirdiyseniz şimdi kurulumlara geçelim.İlk olarak mysql server kurulumunu yapınız,daha sonra mysqlworkbench kurulumunu yapınız.Kurulumlar tamamlandığında mysqlworkbench yazılımını açarak bir veritabanı oluşturun.Kullanıcı bilgilerinizi not alın hibernate ayarlarını yaparken lazım olacaklar.
Proje geliştirmek için ben eclipse tercih ediyorum ve projeleri eclipse üzerinde geliştireceğim.Şimdi yeni bir proje oluşturalım projemize 2 adet paket ekleyeceğim ardından ise 2 adet sınıf.Sınıf isimlerini ve paketler aşağıdaki gibidir.
[img=300x0]http://mesutpiskin.com/blog/wp-content/uploads/2015/07/proje_dosyalari-300x209.png[/img]
 
Şimdi hibernate ve jdbc kütüphanelerimizi projemize eklememiz gerekiyor.İndirdiğiniz hibernate sıkıştırılmış dosyasını çıkarttığınızda lib klasörü göreceksiniz bu klasör projemizde kullanacağımız jar dosylarını barındırmaktadır.Proda gerekli olanlar required klasörü içerisindeki jar dosyalarıdır fakat diğer derslerde farklı konulara da değineceğimiz için tüm jar dosyalarını projemize eklememizde fayda var.Lib klasörü içerisinde ayrı ayrı klasörler göreceksiniz tüm onların içerisindeki jar dosyalarını ayrı bir klasöre toplayın daha sonra indirdiğiniz mysql jdbc kütüphanesinide bu klasör içerisine kopyalayın.
Şimdi bu kütüphaneleri projemize ekleyelim bunun için sırası ile,Project/Properties ve JavaBuildPath sekmesi içerisinde Libraries sekmesi altında Add External Jars diyerek klasöre kopyaladığınız tüm  jar dosyalarını seçerek ekleyin ve apply diyerek uygulayın.
[img=406x0]http://mesutpiskin.com/blog/wp-content/uploads/2015/07/jar-dosyalari-300x219.png[/img]
 
Veritabanımızı oluşturduk,sınıflarımızı ve paketlerimizi ekledik,jar dosyalarını projemize ekledik şimdi ise hibernate için ayarları yapmamız gerekiyor.Fakat ayarlara geçmeden önce sınıflarımızı yazalım ve veritabanına haritalayacağımız sınıfımızı yazalım.
Bir personel sınıfı yazacağız ve bu sınıf bizim veri tabanımıza bir tablo olarak eklenecek.
personel.java


package com.mesutpiskin.hibernate;
 
import javax.persistence.Entity;
import javax.persistence.Id;
 
@Entity //bu sınıfın veritabanı üzerinde haritalanması için işaretleme niteliğindeki anahtar kelime
public class personel {

int personelId;
String personelAdi,personelSoyadi;
 
/*her tablonun bir id si olur ve @id ile personelId değişkenimizin birincil anahtar olacak
*kolun olmasını istiyoruz ve @id anahtar kelimesi ile bunu belirtiyoruz.
*Bunu get metoduna yazıyoruz aksi taktirde haritalama sırasında sorun olacaktır.
*/
@Id
public int getPersonelId() {
return personelId;
}
public void setPersonelId(int personelId) {
this.personelId = personelId;
}
public String getPersonelAdi() {
return personelAdi;
}
public void setPersonelAdi(String personelAdi) {
this.personelAdi = personelAdi;
}
public String getPersonelSoyadi() {
return personelSoyadi;
}
public void setPersonelSoyadi(String personelSoyadi) {
this.personelSoyadi = personelSoyadi;
}
 
}

main.java
Bu sınıf ile personel sınıfımızdan bir instance oluşturacağız ve veritabanı üzerine bu verilerin eklenmesini sağlayacağız.


package com.mesutpiskin.project;
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
 
import com.mesutpiskin.hibernate.personel;
 
public class main {
 
public static void main(String[] args) {

//Personel sınıfımızdan bir instance oluşturuyoruz
personel personel =new personel();
personel.setPersonelId(1);
personel.setPersonelAdi("MESUT");
personel.setPersonelSoyadi("PISKIN");
//------------------------------------

//Bir oturum başlatacağız oturumdan önce ise hibernate config dosyamızı belirteceğiz
SessionFactory sessionFactory=new Configuration().configure().buildSessionFactory();
Session session=sessionFactory.openSession();
/*Transactionlar ile bir işlem yarıda kaldıysa  veya
* tam olarak tamamlanadıysa tüm adımlar başa alınır
* veri ve işlem güvenliği için önemlidir.Kısacası ya hep
* ya hiç prensibine göre çalışır.
*/
System.out.println("Transaction başlatıldı.");
session.beginTransaction();
//personel sınıfından aldığımız instance kaydedilmesi için gönderildi
session.save(personel);
session.getTransaction().commit();
System.out.println("Transaction tamamlandı.");
System.out.println("Veri kaydedildi.");


}
 
}

Şimdi ise hibernate için bir ayar dosyası oluşturmamız gerekiyor,hibernate veritabanımızı bulabilmek için bazı ayarlara ihtiyaç duyar,bu ayarlar ise hibernate.cfg.xml dosyasında tutulur,bu dosyada projemiz içerisinde src dizini altında olmalıdır,farklı bir yerde olduğunda ise bu belirtilmelidir.Şimdi src dizini altında bir xml dosyası oluşturalım ve ismine ise hibernate.cfg.xml diyelim.Dosyamızın içeriği ise aşağıdaki gibi olacaktır.


<?xml version='1.0' encoding='utf-8'?>
 
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
 
<hibernate-configuration>
 
    <session-factory>
 
        <!-- Veritabanı baglanti bilgileri -->
        <!-- Veritabanı jdbc -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <!--Veritabanımız için bağlantı yolunu vereceğiz  -->
        <property name="connection.url">jdbc:mysql://localhost:3306/veritabaniadi</property>
         <!-- Veritabanı kullanıcı adı -->
        <property name="connection.username">root</property>
         <!-- Kullanıcı parolamız -->
        <property name="connection.password">root</property>
 
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
 
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
 
        <!-- Disable the second-level cache  -->
        <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
 
        <!-- Konsolda yapılan işlemlerin sql sorgusu gösterilsin mi -->
        <property name="show_sql">true</property>
 
        <!-- Burası create olursa tablo her defasında yeniden oluşturulur -->
        <!-- Update olur ise veritabanı silinmez üzerine ekleme yapılır -->
        <property name="hbm2ddl.auto">create</property>

<!-- Burası ise veritabanımıza haritalanacak olan personel sınıfımızın yolu -->
        <mapping class="com.mesutpiskin.hibernate.personel"/>
 
    </session-factory>
 
</hibernate-configuration>

Son adım olarak main sınıfımızı çalıştırıyoruz ve sınıfımız veritabanı üzerinde tablo halinde yer aldığını görüyoruz.
[img=300x0]http://mesutpiskin.com/blog/wp-content/uploads/2015/07/database-300x131.png[/img]
 
Bu alanda çeşitli hatalar ile karşılaşırsanız eclipse üzerinden çıktıları iyi takip etmelisiniz o hata çıktıları sizi çözüme götürecektir,yine çözüm bulamazsanız yorum veya eposta ile gönderdiğinizde elimden geldiğince yardımcı olmaya çalışırım.



Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  React.js ye giriş dalaylama 0 2,967 07-08-2017, Saat: 22:10
Son Mesaj: dalaylama
  JDBC Nedir? Giriş dalaylama 0 3,079 12-06-2017, Saat: 00:18
Son Mesaj: dalaylama

Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


Bu konuyu görüntüleyen kullanıcı(lar):
1 Ziyaretçi

   
Türkçe Çeviri: Emre KRMN, Kodlayanlar MyBB, © 2002-2024 MyBB Group.  



Merih Forum® bilgi paylaşım platformu. 2015-∞ Tüm hakları saklıdır.