Hibernate etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Hibernate etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

27 Haziran 2016 Pazartesi

Maven ve MySQL Kullanılarak Hibernate Projesi Oluşturma

     
     Eclipse ortamında Maven projesi nasıl açılır onu göreceğiz. Hemen ardından projemize MySQL veritabanı ve Hibernate ekleyeceğiz. Bunun için Eclipse'i açıyoruz. Ben Mac OS işletim sistemi kullanıyorum. Fakat diğer işletim sistemlerinde de herşey aynı.

1.Adım (Maven Projesinin oluşturulması)

Eclipse'de File -> New -> Other -> Maven -> Maven Project yolunu takip ediyoruz. Karşımıza bu ekran geliyor.





Next ile devam ediyoruz.







Create a simple project kısmına tik koyup Next diyelim.






Bu ekranda Group Id: yazan yere paketimizin ismini yazıyoruz. Ben com.hasanburakavci (sitenin adını) yazdım. Artifact Id: yazan yere ise projemizin ismini yazalım. Finish deyip projemizi oluşturuyoruz.







Gördüğünüz gibi ilk hibernate projemizi oluşturmuş olduk.



2.Adım


Bu adımda Hibernate ve MySQL'i projemize dahil etmeyi göreceğiz. Bunun için pom.xml yazan dosyaya çift tıklayıp açıyoruz.







Hemen altta Dependencies yazan yere tıklayalım.







Add diyerek istediğimiz paketi projemize dahil edebiliriz. Mevcut olarak servlet-api ve jsp-api projemizde bulunmakta. Bunlarla işimiz olmayacağı için üzerlerine tıklayıp remove diyebilirsiniz. Ben karışmayacağım.






Açılan bu pencenin Group Id: yazan yerine org.hibernate , Artifact Id yazan yerine hibernate-core , Version yazan yerine 4.0.1.Final yazıp OK diyoruz. Farklı versiyonlarda yazabiliriz. Tekrar Add yazan yere tıklıyoruz.





Şimdi de aynı yerlere mysql,  mysql-connector-java ve 5.1.6 yazıp OK diyelim. File -> Save As diyerek yaptığımız herşeyi kaydedelim. Eğer doğru yaptıysak ve bir hata meydana gelmediyse Maven Dependencies aşağıdaki gibi görünmelidir.







Devamını oku ...

25 Haziran 2016 Cumartesi

Hibernate Kalıtım (Inheritance) strategy=JOINED


@Inheritance
(strategy=InheritanceType.JOINED)

Bu anotasyon kaç tane Entity sınıfınız var ise o kadar tablo oluşturur. Her Entity sadece kendi sınıfına ait değişkenleri barındırır. Yani PER_CLASS_TABLE ve SINGLE_TABLE stratejilerindeki gibi kalıtım aldığı değişkenleri barındırması gibi bir durum söz konusu değildir. Sadece id değerleri her tabloda bulunur. Bu id değerleri sayesinde eklenen veriler bulunabilir.






0-Kullanılan Teknolojiler

Eclipse IDE
Maven 3.3.9
Hibernate 4.0.1.Final
MySQL 5.1


1-Proje




2-Entity (Model) Sınıfı


Canli.java

package com.hasanburakavci.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity
@Inheritance(strategy=InheritanceType.JOINED)
public class Canli {
        @Id
        @GeneratedValue(strategy=GenerationType.TABLE)
        private int id;
        private String ad;
        private String solonumTuru;
 
        //----Yapılandırıcı------
        public Canli() {
  
        }
 
        //-------Setter-Getter------
        
}


Hayvan.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

@Entity
public class Hayvan extends Canli {
        private int omur;
        private String yasamAlani;
 
        //----Yapılandırıcı------
        public Hayvan() {
   
        }
  
        //-------Setter-Getter------
        
}


Surungen.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

@Entity
public class Surungen extends Hayvan {
        private int zehirMiktari;
  
        //----Yapılandırıcı------
        public Surungen() {
   
        }
  
        //-------Setter-Getter------
       
}


3-HibernateUtil Sınıfı

package com.hasanburakavci.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateUtil {

        //SessionFactory oluşturuluyor.
        private static SessionFactory sessionFactory;
        static{
                Configuration configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
        }
        //Diğer sınıflardan getSessionFactory metoduyla sessionFactory çağırılıyor.
        public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}



4-Hibernate Application Sınıfı

package com.hasanburakavci;

import org.hibernate.Session;

import com.hasanburakavci.model.Canli;
import com.hasanburakavci.model.Hayvan;
import com.hasanburakavci.model.Surungen;
import com.hasanburakavci.util.HibernateUtil;

public class HibernateApplication {
     public static void main(String[] args){
          //HibernateUtil sınıfından SessionFactory çağrıllp Session oluşturuluyor.
          Session session= HibernateUtil.getSessionFactory().openSession();
          
          //Canli nesnesi oluşturuluyor
          Canli canli= new Canli();
          canli.setAd("Bakteri");
          canli.setSolonumTuru("O2siz");
          
          //Hayvan nesnesi oluşturuluyor.
          Hayvan hayvan=new Hayvan();
          hayvan.setAd("Balik");
          hayvan.setSolonumTuru("Solungac");
          hayvan.setYasamAlani("Deniz");
          hayvan.setOmur(5);
            
          //Sürüngen nesnesi oluşturuluyor.
          Surungen surungen = new Surungen();
          surungen.setAd("Yilan");
          surungen.setSolonumTuru("Akciger");
          surungen.setYasamAlani("Kara");
          surungen.setZehirMiktari(100);

          try{
                session.beginTransaction();
                 session.save(canli);
                 session.save(hayvan);
                 session.save(surungen);
               session.getTransaction().commit();
          } catch (Exception e) {
               /*Eğer hata meydana gelirse Transaction ile yapılan işlem 
               geriye sarılıp iptal eiliyor*/
               session.getTransaction().rollback();
          }finally {
               //her durumda session işlemi sonlandırılıyor.
               session.close();
          }
  
     }
}


5-Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.hasanburakavci</groupId>
  <artifactId>MerhabaHibernate</artifactId>
  <version>0.0.1-SNAPSHOT</version>
<dependencies>
        <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
  <version>5.1.6</version>   </dependency>   <dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core</artifactId>   <version>4.0.1.Final</version>   </dependency>   </dependencies> </project>


6-Hibernate.cfg.xml Dosyası

<?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.bytecode.use_reflection_optimizer">false</property>
        <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:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping class="com.hasanburakavci.model.Canli"/>
        <mapping class="com.hasanburakavci.model.Hayvan"/>
        <mapping class="com.hasanburakavci.model.Surungen"/>
        </session-factory>
</hibernate-configuration>


7-Konsol

.
.
.
INFO: HHH000262: Table not found: Surungen
Haz 21, 2016 3:52:34 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: hibernate_sequences
Haz 21, 2016 3:52:34 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Hibernate: select sequence_next_hi_value from hibernate_sequences where sequence_name = 'Canli' for update
Hibernate: insert into hibernate_sequences(sequence_name, sequence_next_hi_value) values('Canli', ?)
Hibernate: update hibernate_sequences set sequence_next_hi_value = ? where sequence_next_hi_value = ? and sequence_name = 'Canli'
Hibernate: insert into Canli (ad, solonumTuru, id) values (?, ?, ?)
Hibernate: insert into Canli (ad, solonumTuru, id) values (?, ?, ?)
Hibernate: insert into Hayvan (omur, yasamAlani, id) values (?, ?, ?)
Hibernate: insert into Canli (ad, solonumTuru, id) values (?, ?, ?)
Hibernate: insert into Hayvan (omur, yasamAlani, id) values (?, ?, ?)
Hibernate: insert into Surungen (zehirMiktari, id) values (?, ?)
Canli, Hayvan ve Surungen adında üç tablo oluştu.



8-Veritabanı Tabloları



Canli tablosunda ad ve solonumTuru kolonları mevcuttur. diğer stratejilerden farklı olarak kaydedilen tüm nesneler bu tabloda mevcuttur.





Hayvan tablosunda sadece omur ve yasamAlanlari kolonları mevcut. Kalıtım aldığı Canli sınıfından sadece id kolonu bu tabloda  bulunmaktadır. Ayrıca Hayvan sınıfına ait nesne bu tabloya kaydedilmiş.


Surungen tablosunda sadece zehirMiktari kolonu mevcut. Kalıtım aldığı Hayvan sınıfından sadece id kolonu bu tabloda bulunmaktadır. Dikkat edilirse 3 nesne 3 tabloyada kaydedilmiş. Bu nesneleri id değerleriyle ayırt edebiliyoruz.
Devamını oku ...

Hibernate Kalıtım (Inheritance) strategy=TABLE_PER_CLASS



@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

Bu anotasyon kaç tane Entity sınıfınız var ise o kadar tablo oluşturur. Her Entity sınıfı kalıtım aldığı sınıfa ait değişkenleri de tablosunda barındırır. 


0-Kullanılan Teknolojiler

Eclipse IDE
Maven 3.3.9
Hibernate 4.0.1.Final
MySQL 5.1


1-Proje




2-Entity (Model) Sınıfı


Canli.java

package com.hasanburakavci.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class Canli {
        @Id
        @GeneratedValue(strategy=GenerationType.TABLE)
        private int id;
        private String ad;
        private String solonumTuru;
 
        //----Yapılandırıcı------
        public Canli() {
  
        }
 
        //-------Setter-Getter------
        
}


Hayvan.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

@Entity
public class Hayvan extends Canli {
        private int omur;
        private String yasamAlani;
 
        //----Yapılandırıcı------
        public Hayvan() {
   
        }
  
        //-------Setter-Getter------
       
}


Surungen.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

@Entity
public class Surungen extends Hayvan {
        private int zehirMiktari;
  
        //----Yapılandırıcı------
        public Surungen() {
   
        }
  
        //-------Setter-Getter------
        
}


3-HibernateUtil Sınıfı

package com.hasanburakavci.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateUtil {

        //SessionFactory oluşturuluyor.
        private static SessionFactory sessionFactory;
        static{
                Configuration configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
        }
        //Diğer sınıflardan getSessionFactory metoduyla sessionFactory çağırılıyor.
        public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}



4-Hibernate Application Sınıfı

package com.hasanburakavci;

import org.hibernate.Session;

import com.hasanburakavci.model.Canli;
import com.hasanburakavci.model.Hayvan;
import com.hasanburakavci.model.Surungen;
import com.hasanburakavci.util.HibernateUtil;

public class HibernateApplication {
     public static void main(String[] args){
          //HibernateUtil sınıfından SessionFactory çağrıllp Session oluşturuluyor.
          Session session= HibernateUtil.getSessionFactory().openSession();
          
          //Canli nesnesi oluşturuluyor
          Canli canli= new Canli();
          canli.setAd("Bakteri");
          canli.setSolonumTuru("O2siz");
          
          //Hayvan nesnesi oluşturuluyor.
          Hayvan hayvan=new Hayvan();
          hayvan.setAd("Balik");
          hayvan.setSolonumTuru("Solungac");
          hayvan.setYasamAlani("Deniz");
          hayvan.setOmur(5);
            
          //Sürüngen nesnesi oluşturuluyor.
          Surungen surungen = new Surungen();
          surungen.setAd("Yilan");
          surungen.setSolonumTuru("Akciger");
          surungen.setYasamAlani("Kara");
          surungen.setZehirMiktari(100);

          try{
                session.beginTransaction();
                 session.save(canli);
                 session.save(hayvan);
                 session.save(surungen);
               session.getTransaction().commit();
          } catch (Exception e) {
               /*Eğer hata meydana gelirse Transaction ile yapılan işlem 
               geriye sarılıp iptal eiliyor*/
               session.getTransaction().rollback();
          }finally {
               //her durumda session işlemi sonlandırılıyor.
               session.close();
          }
  
     }
}


5-Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.hasanburakavci</groupId>
  <artifactId>MerhabaHibernate</artifactId>
  <version>0.0.1-SNAPSHOT</version>
<dependencies>
        <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
  <version>5.1.6</version>   </dependency>   <dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core</artifactId>   <version>4.0.1.Final</version>   </dependency>   </dependencies> </project>


6-Hibernate.cfg.xml Dosyası

<?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.bytecode.use_reflection_optimizer">false</property>
        <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:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping class="com.hasanburakavci.model.Canli"/>
        <mapping class="com.hasanburakavci.model.Hayvan"/>
        <mapping class="com.hasanburakavci.model.Surungen"/>
        </session-factory>
</hibernate-configuration>


7-Konsol

.
.
.
INFO: HHH000262: Table not found: Surungen
Haz 21, 2016 3:28:30 PM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: hibernate_sequences
Haz 21, 2016 3:28:30 PM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Hibernate: select sequence_next_hi_value from hibernate_sequences where sequence_name = 'Canli' for update
Hibernate: insert into hibernate_sequences(sequence_name, sequence_next_hi_value) values('Canli', ?)
Hibernate: update hibernate_sequences set sequence_next_hi_value = ? where sequence_next_hi_value = ? and sequence_name = 'Canli'
Hibernate: insert into Canli (ad, solonumTuru, id) values (?, ?, ?)
Hibernate: insert into Hayvan (ad, solonumTuru, omur, yasamAlani, id) values (?, ?, ?, ?, ?)
Hibernate: insert into Surungen (ad, solonumTuru, omur, yasamAlani, zehirMiktari, id) values (?, ?, ?, ?, ?, ?)
Canli, Hayvan ve Surungen adında üç tablo oluştu.


8-Veritabanı Tabloları




Canli tablosuna ait iki kolon bulunmaktadır.




Hayvan tablosu normalde omur ve yasamAlani kolonlarına sahipti. Canli sınıfını kalıtım aldığı için ad ve solunumTuru kolonlarına da sahip olmuştur.



Surungen tablosu Hayvan sınıfını kalıtım almıştır. Hayvan sınıfı ise Canli sınıfını kalıtım almıştır. Bu sebepten Surungen tablosunda hem Canli hem de Hayvan sınıfına ait kolonlar mevcuttur.
Devamını oku ...

Hibernate Kalıtım (Inheritance) strategy=SINGLE_TABLE


@Inheritance(strategy=InheritanceType.SINGLE_TABLE)

Bu anotasyon adından da anlaşılacağı gibi kalıtımda tek bir tablonun kullanılacağını göstermektedir. (Single table -> Tek tablo) @Inheritance anotasyonunun varsayılan stratejisi SINGLE_TABLE'dır. Bu sebepten sadece @Inheritance yazılırsa değişen hiçbir şey olmaz. 


@DiscriminatorColumn

Oluşacak bu tablonun DTYPE adında bir kolonu olacaktır. Varsayılan tipi ise VARCHAR'dır. Bu anotasyonu sayesinde hem kolonun ismini hem de tipini değiştirebiliriz. 
@DiscriminatorColumn(name="canli",discriminatorType=DiscriminatorType.STRING)   yazıldığı taktirde kolonun adı canli, tipi string olacaktır.

@DiscriminatorValue

Bu anotasyon kalıtım alınan diğer sınıflar için kullanılır. Oluşan yeni kolondaki kayıt isimlerini değiştirir. @DisciriminatorValue(name="surungen") denilirse kolona surungen yazılır.


0-Kullanılan Teknolojiler

Eclipse IDE
Maven 3.3.9
Hibernate 4.0.1.Final
MySQL 5.1


1-Proje




2-Entity (Model) Sınıfı


Canli.java

package com.hasanburakavci.model;


import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="canli",discriminatorType=DiscriminatorType.STRING)
//SINGLE_TABLE ile tek bir tablo oluşacak.
public class Canli {
        @Id
        @GeneratedValue(strategy=GenerationType.AUTO)
        private int id;
        private String ad;
        private String solonumTuru;
 
        //----Yapılandırıcı------
        public Canli() {
  
        }
 
        //-------Setter-Getter------
        
}


Hayvan.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

import javax.persistence.DiscriminatorValue;
@Entity
@DiscriminatorValue(value="hayvan")
public class Hayvan extends Canli {
        private int omur;
        private String yasamAlani;
 
        //----Yapılandırıcı------
        public Hayvan() {
   
        }
  
        //-------Setter-Getter------
       
}


Surungen.java

package com.hasanburakavci.model;

import javax.persistence.Entity;

import javax.persistence.DiscriminatorValue;
@Entity
@DiscriminatorValue(value="surungen")
public class Surungen extends Hayvan {
        private int zehirMiktari;
  
        //----Yapılandırıcı------
        public Surungen() {
   
        }
  
        //-------Setter-Getter------
       
}


3-HibernateUtil Sınıfı

package com.hasanburakavci.util;

import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;


public class HibernateUtil {

        //SessionFactory oluşturuluyor.
        private static SessionFactory sessionFactory;
        static{
                Configuration configuration = new Configuration().configure();
        sessionFactory = configuration.buildSessionFactory();
        }
        //Diğer sınıflardan getSessionFactory metoduyla sessionFactory çağırılıyor.
        public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
}



4-Hibernate Application Sınıfı

package com.hasanburakavci;

import org.hibernate.Session;

import com.hasanburakavci.model.Canli;
import com.hasanburakavci.model.Hayvan;
import com.hasanburakavci.model.Surungen;
import com.hasanburakavci.util.HibernateUtil;

public class HibernateApplication {
     public static void main(String[] args){
          //HibernateUtil sınıfından SessionFactory çağrıllp Session oluşturuluyor.
          Session session= HibernateUtil.getSessionFactory().openSession();
          
          //Canli nesnesi oluşturuluyor
          Canli canli= new Canli();
          canli.setAd("Bakteri");
          canli.setSolonumTuru("O2siz");
          
          //Hayvan nesnesi oluşturuluyor.
          Hayvan hayvan=new Hayvan();
          hayvan.setAd("Balik");
          hayvan.setSolonumTuru("Solungac");
          hayvan.setYasamAlani("Deniz");
          hayvan.setOmur(5);
            
          //Sürüngen nesnesi oluşturuluyor.
          Surungen surungen = new Surungen();
          surungen.setAd("Yilan");
          surungen.setSolonumTuru("Akciger");
          surungen.setYasamAlani("Kara");
          surungen.setZehirMiktari(100);

          try{
                session.beginTransaction();
                 session.save(canli);
                 session.save(hayvan);
                 session.save(surungen);
               session.getTransaction().commit();
          } catch (Exception e) {
               /*Eğer hata meydana gelirse Transaction ile yapılan işlem 
               geriye sarılıp iptal eiliyor*/
               session.getTransaction().rollback();
          }finally {
               //her durumda session işlemi sonlandırılıyor.
               session.close();
          }
  
     }
}


5-Pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
  <groupId>com.hasanburakavci</groupId>
  <artifactId>MerhabaHibernate</artifactId>
  <version>0.0.1-SNAPSHOT</version>
<dependencies>
        <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
  <version>5.1.6</version>   </dependency>   <dependency>   <groupId>org.hibernate</groupId>   <artifactId>hibernate-core</artifactId>   <version>4.0.1.Final</version>   </dependency>   </dependencies> </project>


6-Hibernate.cfg.xml Dosyası

<?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.bytecode.use_reflection_optimizer">false</property>
        <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:3306/test</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping class="com.hasanburakavci.model.Canli"/>
        <mapping class="com.hasanburakavci.model.Hayvan"/>
        <mapping class="com.hasanburakavci.model.Surungen"/>
        </session-factory>
</hibernate-configuration>


7-Konsol

.
.
.
INFO: HHH000396: Updating schema
Haz 21, 2016 10:28:41 AM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Canli
Haz 21, 2016 10:28:41 AM org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
INFO: HHH000262: Table not found: Canli
Haz 21, 2016 10:28:41 AM org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
Hibernate: insert into Canli (ad, solonumTuru, canli) values (?, ?, 'Canli')
Hibernate: insert into Canli (ad, solonumTuru, omur, yasamAlani, canli) values (?, ?, ?, ?, 'hayvan')
Hibernate: insert into Canli (ad, solonumTuru, omur, yasamAlani, zehirMiktari, canli) values (?, ?, ?, ?, ?, 'surungen')
Canli adında tablo oluştu. Diğer alanlar bu tablonun içerisine eklendi.


8-Veritabanı Tablosu




Tek bir tablo mevcut. Bütün değişkenler bu tabloya eklendi. canli adında bir kolon oluştu. Normalde DTYPE adında kolon olacaktı ama biz değiştirdik. Canli sınıfında 3 değişken tanımlandığı için sadece 2 kolonu mevcut. Hayvan sınıfında 2 değişken tanımlandı ancak Canlı sınıfına ait 2 değişkeni de kullanabildiği için toplam 5 kolonu sahip oldu. Surungen sınıfı hem Canlı hem de Hayvan sınıflarının değişkenlerini kullanabiliyor. Toplamda 6 kolonu var.
Devamını oku ...