Merhaba arkadaşlar,
Bu yazımda sizlere Hibernate Annotation'lardan bahsedeceğim. Bildiğiniz üzere bundan önceki konularımızda veritabanımızda bulunan tabloları eşleme yapmak için XML dosyaları kullandık. Bu eşleme işleminin bir diğer yöntemi de Hibernate Annotation'ları kullanarak eşleme yapmaktır. Peki bu Hibernate Annotation'lar nedir ve nasıl kullanılır? onlardan bahsedelim.
Öncelikle bu annotation'ları kullanabilmek için ilgili jar dosyalarını indirmemiz gerekiyor. Bunlar hibernate-annotations.jar, hibernate-commons-annotations.jar ve ejb3-persistence.jar dosyalarıdır. Daha önceki haftalarda Hibernate projeleri için gerekli olan jar dosyalarını indirdik ve Hibernate adında bir User Library oluşturmuştuk. Oluşturduğumuz bu User Library içinde yukarıda bahsettiğim jar dosyaları da bulunuyordu. Eğer User Library oluşturmadıysanız ilgili jar dosyalarını projenize sağ tıklayıp Build Path ->Configure Build Path -> Libraries ->Add External JARs adımlarını izleyerek ekleyebilirsiniz.
Jar dosyalarımızı ekledikten sonra veritabanımızda "Isci" adında bir tablo oluşturalım.
create table Isci(
id INT NOT NULL auto_increment,
ad VARCHAR(20) default NULL,
soyad VARCHAR(20) default NULL,
maas INT default NULL,
PRIMARY KEY (id) );
Şimdi bu tablomuzu Hibernate Annotaiton'ları kullanarak eşleyelim.
Öncelikle veritabanımızdaki tablomuzun isminde yeni bir java sınıfı oluşturuyoruz. EJB 3 standart anotasyonlarını içeren javax.persistence paketini import ediyoruz ve sınıf ismimizin üstüne @Entity ve @Table anotasyonlarımızı yazıyoruz.
@Entity anotasyonu kullanarak Isci sınıfımızın bir Entity Bean olduğunu belirtiriz. Peki Entity Bean nedir? kısaca değinecek olursak. Entity Bean bir veritabanındaki iş varlık nesnesini temsil eder. Yani biraz daha açacak olursak veritabanımızda bulunan her bir tablo bir Entity Bean'e karşılık gelir. Bu tablolarımızdaki her bir satır da Entity Bean Instance'a karşılık gelir. Entity Bean veriyi objeleştirir ve üzerinde daha kolay işlem yapmamızı sağlar. Entity Bean'ler kalıcıdır, primary key'leri vardır, paylaşımlı erişime izin verir ve diğer entity bean'ler ile ilişki oluşturulabilir. Ayrıca Entity Bean'lerin parametresiz constructor'u olmak zorundadır.
@Table anotasyomunuz ise veritabanımızdaki tablomuzun ismine karşılık gelir. Name atribute'nun yanı sıra catalogue, schema ve unique constraint attribute'lerini de içerir. Biz name attribute'unu kullanarak tablo ismimizi belirteceğiz.
Kullandığımız diğer anotasyonlardan @Id ve @GeneratedValue anatosyonları ise yukarıda Entity Bean'lerden bahsederken onların primary key'lerinin olduğuna değinmiştik. Entity Bean olan Isci sınıfımızın primary key'ini belirtiyoruz.
@Column anotasyonu ise tablomuzda yer alan sutun değerlerine karşılık gelir. Bu anotasyonun name attribute'unun yanı sıra length, nullable, unique attribute'lerini de alır.
Daha sonra tablomuzdaki attribute değerlerine karşılık gelen değişkenlerimizin getter&setter methodlarını oluşturuyoruz. Böylece Hibernate anotasyonlarını kullanarak tablomuzu eşlemiş olduk. Oluşturduğumuz bu sınıfı daha öncede bahsettiğimiz hibernate configuration dosyamıza (hibernate.cfg.xml) mapping class olarak belirtiyoruz.
<mapping class="com.hibernate.example.Isci" />
Buraya kadar veritabanımızda bulunan tablomuzu Hibernate anotasyonları kullanarak nasıl eşleyeceğimizi görmüş olduk. Haftaya anotasyonlar kullanarak daha detaylı bir örnek proje oluşturmayı planlıyorum. Takipte kalmaya devam edin...
Hiç yorum yok:
Yorum Gönder