ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
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

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.
  • 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