Bu yazımda size geçen hafta giriş yaptığım Hibernate teknolojisinin Eclipse ortamına kurulumunu ve ilk örnek projemizi nasıl oluşturacağımızdan bahsedeceğim.
Hibernate kurulumuna geçmeden önce projede kullanacağımız diğer araçlardan bahsedeyim. Geçen hafta da belirttiğim gibi projelerimde veritabanı aracı olarak MySQL kullanacağım. Fakat siz bir önceki yazımda da belirttiğim Hibernate'in desteklediği diğer veritabanı araçlarını da kullanabilirsiniz.
Veritabanı aracı olarak MySQL kullanmak isteyen arkadaşların öncelikle MYSQL sunucusunu bilgisayarlarına kurmaları gerekmektedir. İlgili link aracılığıyla MySQL Community Server'ı ücretsiz olarak indirebilir ve bilgisayarınıza kurabilirsiniz. MySQL Server kurulumunu gerçekleştirdikten sonra veritabanı işlemlerimizi daha kolay yapmamızı sağlayan MySQL Workbench aracını da aynı link aracılığıyla indirebilir ve bilgisayarınıza kurabilirsiniz.
Yukarıda bahsettiğim kurulumları gerçekleştirdikten sonra MySQL ile Java ortamının bağlantısını gerçekleştirebilmek için MySQL Connector/J kütüphanesini indirmemiz gerekmektedir. Bu kütüphaneyi İlgili link aracılığıyla indirebilirsiniz. Aynı link aracılığıyla MySQL'in diğer ortamlarla bağlantısını sağlayan kütüphaneleri de indirebilirsiniz.
Veritabanı işlemleri için gerekli olan kurulumların yapılmasından sonra Hibernate teknolojisinin Eclipse ortamına kurulumuna geçelim.Öncelikle ilgili link aracılığıyla Hibernate'in son sürümünü ve önceki sürümlerini indirebilirsiniz. Daha sonra yine projelerimizde kullanacağımız Hibernate Annotations kütüphanelerini indirmemiz gerekiyor. Yine ilgili link aracılığıyla bu kütüphaneleri indirebilirsiniz.
Kullanacağımız kütüphaneleri indirdikten sonra bu kütüphaneleri projemize dahil edelim. Eclipse üzerinden File -> New -> Java Project yolunu izleyerek yeni proje oluşturduktan sonra Eclipse'in Window sekmesi üzerine gelip Preferences seçeneğinine tıklıyoruz.Tıkladıktan sonra karşımıza aşağıdaki gibi bir pencere geliyor ve bu pencereden Java -> Build Path -> User Libraries seçeneğine tıklıyoruz.
Daha sonra New butonuna basıyoruz ve oluşturmak istediğimiz User Libraries ismini yazıyoruz. Ben isim olarak Hibernate yazdım. Kendi User Library'imizi oluşturduktan sonra içine daha önceden indirdiğimiz jar dosyalarımızı yani kütüphanelerimizi ekliyoruz. Bu işlemi yukarıdaki resimde de görüldüğü gibi Add External JAR's butonu ile yapıyoruz. İlgili jar dosyalarımızın tamamı aşağıda bulunan resimdeki gibi olmalıdır.
Tüm bu işlemlerin sonunda kendi User Library'imizi oluşturduk ve sıra projemize dahil etmeye geldi. Bu işlem için proje ismimize sağ tıklıyoruz ve Build Path -> Add Libraries... -> User Library yolunu izleyerek kendi oluşturduğumuz User Library ismini seçiyoruz.
Bir sonraki adım olarak Hibernate configuration dosyamızı oluşturacağız. Bu işlem için proje ismimize sağ tıklayıp New -> Other... -> XML File seçeneğine tıklıyoruz ve dosya ismi olarak hibernate.cfg.xml adını veriyoruz. Oluşturduğumuz bu XML dosyasına Hibernate'in hangi dili konuşacağı, veritabanının nerede olacağı, hangi kullanıcı adı ve şifre ile bağlanacağını yazıyoruz. Ayrıca opsiyonel olarak oluşturduğu sql sorgularını göstermesini de isteyebiliriz. Tüm bu işlemler için aşağıdaki kodu XML dosyamıza yazıyoruz.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/uyeler</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.show_sql">true</property>
</session-factory>
</hibernate-configuration>
Hibernate gibi ORM araçları bir nesnenin veritabanında hangi tabloya karşılık geldiğini işaretler. Bu işaretleme işlemine "mapping" denir. Mapping'in nasıl olacağını biz belirleriz. İlerleyen yazılarda daha detaylı olarak inceleyeceğiz. Hibernate veritabanına kayıt işlemi için POJO'lardan yararlanır. POJO (Plain Old Java Object), getter/setter methodları ve attribute'lerden oluşan basit bir Java nesnesidir. Hibernate'in oluşturduğumuz bu POJO nesnelerini veritabanında hangi tabloya saklayacağını, nasıl saklayacağını mapping dosyasında belirtiriz. Bu mapping dosyası POJO nesnemizin bulunduğu sınıfla aynı dizinde bulunmalıdır.
Tüm bu anlatılanlardan sonra POJO nesnemizin bulunduğu sınıfı oluşturalım. Sınıf ismi olarak "Kisiler" adını verelim. Bu sınıfımızda kişilerin id, ad ve soyad bilgilerini tutacağız. Hibernate'in bu bilgilere ulaşabilmesi için ilgili bilgilerin getter ve setter methodlarını oluşturacağız. Bu işlem için oluşturduğumuz attributeleri seçerek Eclipse'in Source penceresinden Generate Getters And Setters seçeneğine tıklıyoruz ve getter ve setter methodlarımız oluşuyor.
public class Kisiler {
int id;
String ad;
String soyad;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAd() {
return ad;
}
public void setAd(String ad) {
this.ad = ad;
}
public String getSoyad() {
return soyad;
}
public void setSoyad(String soyad) {
this.soyad = soyad;
}
}
Şimdi oluşturduğumuz bu sınıfın mapping dosyasını oluşturalım. Bunun için oluşturduğumuz Kisiler adındaki sınıfın bulunduğu dizine Kisiler.hbm.xml adında XML dosyası oluşturuyoruz.
<hibernate-mapping>
<class name="Kisiler" table="kisiler">
<id column="id" name="id"><generator class="increment"></generator> </id>
<property column="ad" length="20" name="ad" type="string"></property>
<property column="soyad" length="20" name="soyad" type="string"></property>
</class>
</hibernate-mapping>
Yukarıdaki kodu oluşturduğumuz XML dosyasına yazıyoruz.Şimdi oluşturduğumuz mapping dosyasını Hibernate'e tanıtalım. Bu işlem için önceden oluşturduğumuz hibernate.cfg.xml dosyasına şu satırı ekleyelim.
<mapping resource="Kisiler.hbm.xml"> </mapping>
Gerekli ayarları yaptık bundan sonra nesnemizi istediğimiz gibi kontrol edebiliriz. Sonraki aşama olarak Test adında yeni bi sınıf oluşturuyoruz ve aşağıdaki kodları ekliyoruz.
public class Test {
public static void main(String[] args) {
// Bir tane session tanımlıyoruz.
Session session = null;
// hibernate.cfg.xml dosyasındaki ayarlara ait bir session factory yaratıyoruz
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
// Bu session Factory'den bir session açıyoruz.
session = sessionFactory.openSession();
// Bir transaction açıyoruz
Transaction transaction = session.getTransaction();
try {
// Yapılacak işlemleri yapıyoruz
Kisiler kisi = new Kisiler();
kisi.setAd("Ali");
kisi.setSoyad("Veli");
transaction.begin(); // Transaction'umuzu başlatıyor
session.save(kisi); // kisi objemizi save ediyor
transaction.commit(); // ve bu transaction'u veritabanına gönderiyoruz.
} catch (Exception e) {
e.printStackTrace();
}
finally {
session.close(); //veritabanı işlemimiz başarılı olsa da olmasa da session'u kapatıyoruz.
}
}
}
Böylece hiçbir sql komutu yazmadan veritabanımıza "Ali Veli" adında yeni bir kişi eklemiş olduk.Bu haftaki yazım biraz uzun oldu ama umarım faydalı olmuştur. Gelecek hafta yeni bir konu ile karşınızda olacağım. Takipte kalmanız dileğiyle...
Referanslar:
Hiç yorum yok:
Yorum Gönder