Spring Boot ile Veri Erişimi nedir?

Verilerimize programımızdan ulaşmak, programımız aracılığı ile kaydetmek, güncellemek, raporlamak için türlü türlü işlemler yaparız. Eğer bir geliştirici iseniz geliştirdiğiniz programlarda bunu defalarca farklı modüllerde uygulamak zorunda kalırız.Verilerimizide veritabanlarında saklarız temel düzeyde ise SQL komutları ile verilerimizi değerlendiririz.

JDBC Nedir?

Java ile ilişkisel bir veritabanına erişmek ve verisel işlemler yapmak istiyorsak program-veritabanı arasındaki köprüdür JDBC. JDBC programdan bağımsız bir şekilde yazılarak farklı programlarda kullanılabilmektedir.

JDBC ile herhangi bir veritabanına bağlanarak SQL komutları ile verilere erişebildiğimiz bir yapıdır. Kullanılan veritabanına göre bağlantı çeşidini değiştirmemiz yeterli olmakta.

Java uygulamamız herhangi bir alanda olabilir. Masaüstü uygulaması, FX, JSP, JSF gibi Java’nın herhangi dalında uğraşıyor olursanız olun JDBC bize katkı sağlayacaktır.

JDBC API sayesinde sorgularımızı programımızdan yazmaktayız.

JDBC Driver Manager sayesinde farklı veritabanlarına bağlanabilmekteyiz.

Genel Olarak

JDBC kullanmaya başlamaya karar verdiysek genellikle yapacağımız adımlar şunlar

  1. Veritabanımız ile bağlantı oluşturacağız.

  2. JDBC Driver’imizi yükleyeceğiz.

  3. Statement/PreparedStatement sorgularımızı oluşturacağız.

  4. Resultset oluşturacağız

  5. Ve son olarak oluşturduğumuz bağlantıyı/statementi/resulset’i kapatacağız.

Java Persistance API – JPA Nedir?

Java Persistence API, JPA nesnelerin ilişkilendirilmesini sağlayan, bu ilişkileri unutmayan sonradan da kullanmaya devam edebileceğimiz bir teknolojidir.

ORM Nesne-Sınıf, Sınıf-Nesne, Nesne-İlişkisel veritabanı arasında ki bağlantıyı sağlamakla görevlidir. ORM’de açıkladığımız gibi bu ilişkilerin kullanım şekli JPA’da sadece ilişkisel-nesne bağlantısını sağlamaktadır. JPA sayesinde veritabanı işlemleri Java’da class’lar ile gerçekleştirebilmekteyiz.

JPA, Hibernate, Toplink, Eclipse-Link gibi ORM’leri kullanılmasını kolaylaştırmak için bir çatı altına almıştır. JPA sayesinde ister Hibernate ister Toplink kullanabiliriz.

SQL ile uğraşmamıza gerek kalmayacaktır. JPQL ile Java Persistance API sayesinde veritabanı iletişimini class’lar ve nesneler ile sağlayacağız.

Yazılım ile uğraşan biri olarak JPA teknolojisi uygulama geliştirmemizi daha da hızlandıran bir araç. Çünkü JPA, bizler için gerekli olan bağlantıyı, classları kendi oluşturabilmektedir.

Hibernate nedir?

Hibernate, Java ortamları için bir ORM (Object Relational Mapping) çözümüdür. ORM; model sınıflarımızın ilişkisel veri tabanındaki tablolarımızla eşleşebilmesini sağlayan bir programlama tekniğidir. Bir nevi uygulama ile ilişkisel bir veri tabanı arasında bir köprü olarak düşünülebilir. Hibernate, Java tabanlı bir ORM teknolojisidir.

Spring Data JPA nedir?

Spring Data, Spring kütüphanesinin bir parçasıdır. Spring Data JPA bir JPA sağlayıcısı değildir. JPA sağlayıcımızın (Hibernate gibi) üstüne ekstra bir soyutlama katmanı ekleyen bir kütüphane / çerçevedir.

Spring Data JPA bir uygulama veya JPA sağlayıcısı değildir, veri erişim katmanlarını(DataAccess) uygulamak için gerekli olan kaynak kodu miktarını önemli ölçüde azaltmak için kullanılan bir soyutlamadır. Hibernate, loose coupling avantajlarıyla ORM aracı olarak mükemmel bir seçimdir. Unutmayın, Spring Data JPA her zaman Hibernate veya Eclipse Lınk gibi JPA sağlayıcılarını gerektirir.

JPA ve Hibernate Arasındaki Fark Nedir?

Bildiğimiz gibi JPA sadece bir spesifikasyon, yani bir implementasyonu yok. JPA’yı izlenmesi gereken yönergeler veya bir arabirim olarak düşünürken, Hibernate JPA uygulaması, JPA tarafından tanımlanan API altında işlevsellik sağlayan koddur.

H2 Veritabanı nedir?

Açık kaynak kodlu ve kullanımı oldukça kolay bir SQL veritabanıdır

Java tabanlıdır, veriyi dosya sisteminde saklar

Gömülü veya harici bir process şeklinde çalıştırılabilir

Tarayıcı üzerinden console erişimi sunar

Spring Boot Veri Erişimi ile ilgili detaylar

JDBC, Veritabanı Erişimi için bir standarttır

JPA, ORM için bir standarttır

Hibernate bir JPA uygulamasıdır, Spring Data JPA ise bir JPA veri erişimi soyutlamasıdır. Spring Data, GenericDAO uygulamalarına bir çözüm sunar.

JDBC, JPA'dan çok daha düşük seviyeli (ve daha eski) bir belirtimdir. Temel özellikleriyle JDBC, salt SQL kullanarak bir veritabanıyla etkileşim kurmak için bir API'dir - sorgu gönderme ve sonuçları alma. Nesne veya hiyerarşi kavramı yoktur. JDBC'yi kullanırken, bir sonuç kümesini (esasen SQL sorgunuz tarafından döndürülen bir veya daha fazla veritabanı tablosundan değerlerin satır / sütun matrisi) Java nesnelerine çevirmek size kalmıştır.

Şimdi, JDBC'yi anlamak ve kullanmak için SQL hakkında biraz anlayış ve çalışma bilgisine sahip olmanız çok önemlidir. Bununla birlikte, ilişkisel bir veritabanının ne olduğu, onunla nasıl çalıştığınız ve tablolar, sütunlar, anahtarlar ve ilişkiler gibi kavramlar hakkında gerekli bir içgörü de gelir. Veritabanları, SQL ve veri modelleme hakkında en azından temel bir anlayışa sahip olmadığınız sürece, JDBC'den fazla yararlanamayacaksınız çünkü bu, aslında bunların üzerinde sadece ince bir soyutlamadır.

JDBC, JPA'nın öncülüdür.

JDBC, Java dünyası ile veritabanları dünyası arasında bir köprüdür. JDBC'de, tablo adları, sütun adları gibi CRUD işlemleri için gereken tüm kirli ayrıntıları ifşa etmeniz gerekirken, JPA'da (altında JDBC kullanılıyor), veritabanı meta verilerinin bu ayrıntılarını, ancak Java notlarını kullanarak da belirtirsiniz.

Dolayısıyla, JPA sizin için güncelleme sorguları oluşturur ve aradığınız veya oluşturduğunuz / güncellediğiniz varlıkları yönetir (daha fazlasını da yapar).

Last updated

Was this helpful?