SlideShare a Scribd company logo
1 of 16
Download to read offline
DAO : JPA
Ddemirel/20170223
JPA-Java Persistance API
 Java EE standartıdır.
 EJB lerin entity kısmını oluştururlar.
 Entity Bean ler EJB 3.x ile oldukça kolaylaşmıştır. kolaylaşmıştır.
 Annotataion tabanlıdır.
 JPQL sorgulama dili özelliği vardır.
 Uygulamada değişiklik yapmadan farklı DB’ler ile çalışmayı sağlar
EntityManager
 Veritabanı tabloları ve JPA uygulaması arasında select,insert,update,delete işlemelri yapmamızı
sağlayan metodları içerir .
 EntityManager nesnesinin EntityManagerFactory nesnesinden alındığı noktadan close metotuyla
kapatıldığı noktaya kadar olan alana persistent context denir.
 EntityManager tarafından oluşturulan ve içinde entitylerin hayat döngülerinin (life cycle)
yönetildiği bir alandır öyle ki bu alanda her entityden sadece bir tane nesne bulunur.
 EntityManager, veri tabanına açılan bir oturumdur (session), yapı itibariyla Java’nın web
katmanındaki HttpSession nesnesine benzer ya da Hibernate’in orijinal API’sinin Session
nesnesiyle tamamen aynı işi yapar.
EntityManager
 Persist
 Remove
 Refresh
 Merge
Entity
 Veri sınıflarını ifade eder.
 Her bir entity bir kayıt sınıfıdır.
 Nesneler kayıtları ifade eder.
Entity
Entity
 @Table(name="DB_TABLO_ADI")
 @Column(name="COLUMN_NAME", nullable=false, length=50)
 @Id (Her entity içerisinde bulunmak zorundadır)
hbm2ddl
Versiyonlama
 Verinin versiyonlanmasını sağlar
 Veri üzerinde değişiklik yapıldığında eski bir versiyonu ile güncelleme yapıldığında kontrolü sağlar
ve uygunsuz olduğunda OptimisticLock hatası oluşturur.
Versiyonlama
İlişkiler
 One-to-one
 One-to-many
 Many-to-one
 Many-to-many
JPQL
 JPQL benzeri bir sorgulama dilidir.
 Nenesel sorgulama imkanı sağlar.
 Nesne veya nesne dizisi döndürürler.
NamedQuery
 JPA ile gelen bir sorgulama tipi olan NamedQuery ise önceden tanımlanmış, statik sorgular olarak
adlandırılabilir.
Sınıf Çalışması
 Öğrenci isminde bir nesne yaratıp kaydedin.
 Okul nesnesi yaratıp kaydedin.
 Id
 Okul adi
 Adres
 Telefon
 Sehir entity si kaydedip silme işlemi yapın
 Ülke entity si yaratıp var olan kayıtla merge işlemi yapın.
 Ülke adı
 Ülke kodu
Sınıf Çalışması
 Hesap entity si için bir versiyonlama yaratın ve iki ekrandan değişiklik yapmaya çalışın.
 Mağaza Adı
 Bölgesi
 Ciro
Sınıf Çalışması
 Kullanıcı – Departman - Adres örneğini ilişkileri ile birlikte hazırlayın ve kayıtlar oluşturun.
 Kullanıcı
 Ad
 Soyad
 Departman
 Adres
 Departman
 Departman Adı
 Adres
 Kullanıcılar
 Adres
 İl
 İlçe
 Mahalle
 Açık adres

More Related Content

More from Dilaver Demirel

More from Dilaver Demirel (7)

Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Pentaho BI
Pentaho BIPentaho BI
Pentaho BI
 
JVM ve VisualVm
JVM ve VisualVmJVM ve VisualVm
JVM ve VisualVm
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Aspect Oriented Programming
Aspect Oriented ProgrammingAspect Oriented Programming
Aspect Oriented Programming
 
NodeJS ve MongoDB
NodeJS ve MongoDBNodeJS ve MongoDB
NodeJS ve MongoDB
 
NodeJS Nedir
NodeJS NedirNodeJS Nedir
NodeJS Nedir
 

Jpa

  • 2. JPA-Java Persistance API  Java EE standartıdır.  EJB lerin entity kısmını oluştururlar.  Entity Bean ler EJB 3.x ile oldukça kolaylaşmıştır. kolaylaşmıştır.  Annotataion tabanlıdır.  JPQL sorgulama dili özelliği vardır.  Uygulamada değişiklik yapmadan farklı DB’ler ile çalışmayı sağlar
  • 3. EntityManager  Veritabanı tabloları ve JPA uygulaması arasında select,insert,update,delete işlemelri yapmamızı sağlayan metodları içerir .  EntityManager nesnesinin EntityManagerFactory nesnesinden alındığı noktadan close metotuyla kapatıldığı noktaya kadar olan alana persistent context denir.  EntityManager tarafından oluşturulan ve içinde entitylerin hayat döngülerinin (life cycle) yönetildiği bir alandır öyle ki bu alanda her entityden sadece bir tane nesne bulunur.  EntityManager, veri tabanına açılan bir oturumdur (session), yapı itibariyla Java’nın web katmanındaki HttpSession nesnesine benzer ya da Hibernate’in orijinal API’sinin Session nesnesiyle tamamen aynı işi yapar.
  • 5. Entity  Veri sınıflarını ifade eder.  Her bir entity bir kayıt sınıfıdır.  Nesneler kayıtları ifade eder.
  • 7. Entity  @Table(name="DB_TABLO_ADI")  @Column(name="COLUMN_NAME", nullable=false, length=50)  @Id (Her entity içerisinde bulunmak zorundadır)
  • 9. Versiyonlama  Verinin versiyonlanmasını sağlar  Veri üzerinde değişiklik yapıldığında eski bir versiyonu ile güncelleme yapıldığında kontrolü sağlar ve uygunsuz olduğunda OptimisticLock hatası oluşturur.
  • 11. İlişkiler  One-to-one  One-to-many  Many-to-one  Many-to-many
  • 12. JPQL  JPQL benzeri bir sorgulama dilidir.  Nenesel sorgulama imkanı sağlar.  Nesne veya nesne dizisi döndürürler.
  • 13. NamedQuery  JPA ile gelen bir sorgulama tipi olan NamedQuery ise önceden tanımlanmış, statik sorgular olarak adlandırılabilir.
  • 14. Sınıf Çalışması  Öğrenci isminde bir nesne yaratıp kaydedin.  Okul nesnesi yaratıp kaydedin.  Id  Okul adi  Adres  Telefon  Sehir entity si kaydedip silme işlemi yapın  Ülke entity si yaratıp var olan kayıtla merge işlemi yapın.  Ülke adı  Ülke kodu
  • 15. Sınıf Çalışması  Hesap entity si için bir versiyonlama yaratın ve iki ekrandan değişiklik yapmaya çalışın.  Mağaza Adı  Bölgesi  Ciro
  • 16. Sınıf Çalışması  Kullanıcı – Departman - Adres örneğini ilişkileri ile birlikte hazırlayın ve kayıtlar oluşturun.  Kullanıcı  Ad  Soyad  Departman  Adres  Departman  Departman Adı  Adres  Kullanıcılar  Adres  İl  İlçe  Mahalle  Açık adres