01_JPA Nedir? ORM Nedir?

Merhaba arkadaşlar bu yazımda JPA(Java Persistence API)’ye giriş yapacağım.

Object Relational Mapping(ORM) Nedir?

ORM, veritabanı ile nesnelerimizin birbirleri arasındaki bağlantıyı sağlayan ve yöneten bir tekniktir. Geliştiriciyi veritabanı sorgu dili(SQL) bilmeden nesneler üzerinden veritabanı işlemleri yapılmasını sağlar. Örnek olarak Personel adında bir tablomuz olsun ve bu tablomuzda id, ad ve soyad bilgilerini tutan sütunlar olsun. Ayrıyeten Personel adında bir sınıfımız ve bu sınıfımızda id, ad ve soyad değişkenleri ve bu değişkenlere ait get/set metotları olsun. İşte ORM burada bu sınıfımızı Personel tablomuza haritalar ve her bir değişken her bir sütunu simgeler.

JPA nedir?

Java Persistence Api, Java geliştiricilerine bir nesne/İlişkisel haritalama olanağı sağlar. Java uygulamalarında ilişkisel verilerin yönetilmesini sağlar. Java Persistence 4 katmandan oluşur:

  1. Java Persistence Api
  2. Sorgu Dili
  3. Java Persistence Criteria API
  4. Nesne/İlişkisel Haritalama verileri(Object/Relational Mapping Metadata)

Entity Nedir?

Entity, veritabanımız ile yazılımımız arasında ilişki kurulmasını sağlayan nesnelerdir. Bu nesneler Entity olmak zorundadırlar. Bir sınıfın Entity sınıf olabilmesi için aşağıdaki şartları sağlaması gereklidir:

  • persistence.entity sınıfından @Entity notasyonu ile sınıf işaretlenmelidir.
  • @Id notasyonu kullanılmalıdır.
  • Private değişkenler ve bunlara ait getter/setter metotlar olmalıdır.

Persistence.xml Nedir?

Persistence.xml, bizim configuration dosyamızdır. JPA kullanılan bir projede olmak zorundadır. Bu dosyada veritabanı bağlantımızla ilgili bilgileri düzenleriz.

JPA Implementations

1-)Hibernate

2-)EclipseLink

3-)Open JPA

JPA bir şartnamedir. Yani yukarıdaki frameworkler bu şartnameyi kullanarak işlemleri yaparlar. JPA ya kurallar diyebiliriz ve bu kuralları da yukarıdaki frameworkler uygulamak zorundadırlar.

Bu yazımı burada sonlandırıyorum. Diğer yazılarımda görüşmek üzere…

Print Friendly, PDF & Email

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir