Kayıt girmek

Hibernate mapping açıklamalarına ve örneklerine girmeden hibernate’in neler yapabileceğine dair küçük bir fikriniz olması için küçük bir örnek yazalım.

Öncelikle, yapılandırmada belirttiğimiz veritabanına bağlanıp bir tablo oluşturalım.

create table MUSTERI (
   id integer not null primary key,
   ad varchar(20),
   soyad varchar(20),
   yas smallint 
);

Tablomuzdaki her kayıt bir java sınıfına denk geleceği için Musteri adıyla bir java sınıfı oluşturmamız gerekiyor. Daha sonra bu tablo ile bu sınıfı eşleyeceğiz.

public class Musteri {
    private int id;
    private String ad;
    private String soyad;
    private int yas;
    public String getAd() {
        return ad;
    }
    public void setAd(String ad) {
        this.ad = ad;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getSoyad() {
        return soyad;
    }
    public void setSoyad(String soyad) {
        this.soyad = soyad;
    }
    public int getYas() {
        return yas;
    }
    public void setYas(int yas) {
        this.yas = yas;
    }
}

Not:Getter ve Setter metodlarını tek tek yazmak yerine, private alanları belirttikten sonra Eclipse’in Source > Generate Getter and Setter... seçeneğini kullanabilirsiniz.

Şimdi bu sınıfla veritabanımızdaki MUSTERI tablosunu eşleyecek mapping dosyasını hazırlamaya geldi. Hibernate.cfg.xml dosyasının bulunduğu klasöre Musteri.hbm.xml adında yeni bir dosya açın ve içeriğini şöyle belirleyin.

<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
  <class name="Musteri">
    <id name="id" column="ID" type="int"/>
    <property name="ad" column="AD" type="string" length="20" />
    <property name="soyad" column="SOYAD" type="string" length="20" />
    <property name="yas" column="YAS" type="int"/>
  </class>
</hibernate-mapping>

Bu eşleme dosyasında yaptığımız tek şey Musteri sınıfındaki değişkenlerin hangi tablodaki hangi alanlara denk geldiğini belirtmek.

Artık veritabanımıza kayıt girebiliriz. Kodumuzu şu şekilde değiştirmemiz lazım:

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
public class Test1 {
  public static void main(String[] args) {
        Configuration conf = new Configuration();
        conf.addResource("Musteri.hbm.xml");
        SessionFactory sessionFactory = conf.configure().buildSessionFactory();
        Session session = sessionFactory.openSession();
        Transaction tx = session.beginTransaction();
        for (int i = 1; i < 10; i++) {
            Musteri musteri = new Musteri();
            musteri.setId(i);
            musteri.setAd("Deneme "+i);
            musteri.setSoyad("Müşterisi");
            musteri.setYas(20+i);
            session.save(musteri);
        }
        tx.commit();
        session.close();
  }
}

Çalıştırıp bir bakın MUSTERI tablosuna yeni bir kayıt girilmiş mi diye.

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>