JDBC Api vs Spring Jdbc Template

0 4,926

JDBC Api

Java’da ilişkisel veritabanı(Relational Database) işlemleri jdbc(Java database connectivity) Api ile yapılmaktadır. Yani JDBC bizi veritabanına bağlayan yapıdır.

 

Resimde sadece Oracle veritabanı gösterilsede jdbc api bize diğer veritabanlarıyla da bağlantı kurmamızı sağlar zaten asıl amacı da dediğim gibi bizi veritabanına bağlamasıdır burda işlemler veritabanı bağımsız yapar yani biz hangi ilişkisel veritabanı ile çalışırsak o veritabanının dirverı bağlanmamış için yeterli olacaktır. Jdbc’nin driverları bulunan veritanbaları aşağıda verilmiştir.

  • Oracle
  • MySql
  • PostgreSql
  • Sybase
  • DB2
  • Microsoft SQL Server

Kısa bir Jdbc Api ile giriş yaptıktan sonra nasıl veritabanına kayıt yapabiliriz hemen bakalım.

Yapılması gereken adımlar;

  • MySql WorkBench kurulumu ve dolayısıyla bunu ayağa kaldırmak için XAMPP ya da WAMP server.
  • Örnek bir veritabanı oluşturma
  • Kayıt yapabilmek için oluşturulan veritabanına tablo oluşturma.
  • Bir maven projesi oluşturma

Projemizi de oluşturduktan sonra pom.xml dosyamıza şunları ekliyoruz.

Görüldüğü üzere bu projede bir karşılaştırma yapacağımız için sadece mysql connector değil projemizin devamında gerekecek bağımlılıklarımızda eklenmiştir.

Bir model class’ı oluşturuyoruz. Bütün bütün getter setter metodlarını ekliyoruz ve toString() metodunu override ediyoruz.

Bir interface oluşturarak burda oluşturacağımız metodlarımı tanımlıyoruz.

Şimdi ise bu interface’den implement edilen class’ımızda bu metodu gerçekleştirmekte.

Not: DB_URİ, USER ve PASS değerleri benim veritabanı ismim ve o veritabanına bağlanmam için gereken bilgiler siz bu bilgileri kendiniz için değiştirin.

Görüldüğü üzere bir kayıt işlemi için;

  • Connection
  • Statement
  • Sorguyu çalıştır
  • Sonuçları al
  • Connection kapat

Bu işlemler basit bir kayıt işlemi için yapılmıştır. Bu kayıt işlemine log’lama ve gerçekleştirilme zamanı  gibi bilgilerde eklenebilir.

  • Kod zamanla okunurluğu azalır

Spring Jdbc Template

Spring framework yukarı bashedilen işlemlerden yazılımcıyı soyutlar ve bunu nasıl yaptığını ise şimdi bir göz atalım.

Aynı şekilde daha önceden oluşturduğumuz interfaceden implement eden bir class oluşturuyoruz.

Görüldüğü üzere Jdbc ile yazdığımız koda göre;

  • Kısa
  • Anlaşılır
  • Asıl yapması gerektiği işi yapan yani metodun tek bir sorumluluğu var

Peki ya Spring hangi veritabanına yazacağını, kullanıcı bilgilerini nerden biliyor?

Cevabı ise aşağıda verilen Bean.xml dosyasında. src/resources altına Bean.xml dosyası açıyoruz ve ayarlarımızı aşadağıdaki gibi konfigüre ediyoruz.

Sonuç
Java’da veritabanı işlemleri için hangi framework kullanırsak kullanalım yapılan iş Jdbc’ye dayanır. Kullandığımız bu frameworkler sadece bizleri bazı işlerden soyutlar. Bir mühendis adayı olarak bizlerin framework bağımlısı birer yazılımcı yerine işlerin arka planda nasıl yürüdüğünü bilen sorun çıktığında ya da kullandığımız framework bize bazı bazı avantajlar sağlarken bazı eksileri olduğunu anlarsak ve bu eksilerin bize neler kaybettirdiğini bilirsek, ne zaman kullanıp ne zaman kullanmamızın gerekliliğini fark edersek iyi birer yazımlıcı olacağımızı düşünüyorum. Spring gibi framework’leri kullanıp hayatında reflection duymamak bizleri sadece bu frameworklere bağımlı yapar.

Projenin kodları : https://github.com/cemdrman/SpringJdbcTemplateEx

İsterseniz projeyi fork edip üzerinde değişiklikler yapabilir ve bu projeyi geliştirme amaçlı kullanıbilirsiniz yapacağınız pull-request’leri kabul edebilirim.

 

Kaynaklar

• Alper AKALIN Enterprise Java : https://kimkorkarjavadan.com/enterprise-java/

• Özcan ACAR Pratik Spring : http://www.pratikprogramci.com/urun/pratik-spring-core-ozcanacar/

Email adresiniz yayınlanmayacaktır.