ORM, JPA ve Hibernate Nedir?

Furkan Demir
2 min readJan 28, 2021

--

kaynak: https://javabydeveloper.com/orm-object-relational-mapping/

Object-Relational Mapping (ORM), nesneye yönelik diller ile SQL yazmadan, nesnelerin veritabanı işlemlerinin yürütülmesi yaklaşımıdır.

JPA bir şartlar bütünüdür, uygulama değildir. JPA, ORM’in Java’daki standartıdır, ORM tekniklerini kullanır. Uyulması gereken kuralları belirtir, interface gibi düşünülebilir. ORM araçlarına ortak prototip ve işlevsellik sağlar. Uygulamamızı bir ORM aracından diğerine geçirmek istediğimizde bunu kolayca yapabilmemizi sağlar, ancak bu pek sık rastlanan bir olay değildir.

Hibernate açık kaynaklı, JPA implementasyonudur. JPA’nın diğer implementasyonları gibi tüm JPA şartlarını sağlar. Bu sayede hibernate’ten sonra farklı bir JPA impementasyonu aracına geçiş sağlayabilirsiniz. Günümüzde en popüler ORM aracı Java için hibernate’dir ama hibernate’in rakipleri de vardır(toplink, openjpa, eclipselink).

Eğer ORM’i bir küme olarak düşünürsek JPA bunun alt kümesidir. Hibernate ise JPA’nın alt kümesidir.

JPA bale ise, ORM dans, Hibernate balet veya balerindir.

ORM’in Avantajları

  • ORM araçları ile veritabanını sistemi soyutlanır. Böylece başka bir veritabanına geçiş oldukça kolaylaşır.
  • ORM araçları SQL sorgularını içerdiğinden geliştiriciyi SQL yazma yükünden kurtarır. Bu sayede geliştirme süresini kısaltır.
  • ORM araçları modelinizde yapılan değişikliklere adaptasyon sağlar. Bu sayede güncelleme ve bakım işleri kolaylaşır.
  • SQL injection saldırılarına karşı koruma sağlar.
  • Birçok geliştiricinin geliştirdiği projelerde, JDBC kullanımını karışıklık sorunu oluşturabilir. ORM araçları projeye standartlaşma getirir.

ORM’in Dezavantajları

  • ORM bu avantajlarının yanında bir miktar performans kaybıyla geliyor. Performans için JDBC kullanılması tavsiye edilir.
  • SQL’e göre daha fazla bellek kullanır.
  • Doğru yaklaşım kullanılmadığında n+1 problemi meydana gelebilir.

Teşekkürler.

--

--