Merhabalar. Önceki yazımızda JDBI ile veritabanına nasıl kayıt girilir onu görmüştük. Bu yazıda ise kayıt çekme işlemini göreceğiz.
Şimdi JDBI ile kayıt çekme işlemini örnekleyelim. Ben önceki yazıda eklediğim Can Kahveci kaydındaki ismi çekmek istiyorum diyelim ki. O kaydın id bilgisi de 1 idi.
O zaman PersonOperationsInterface’e şu iki satırı ekliyorum.
Yukarıdaki kodda gördüğümüz gibi selectField metodumuz tablo üzerinde manüpilasyon metodu olmadığı, bir veri çekme işlemi olduğu için @SqlQuery notasyonu ile işaretli.
Bu notasyona parametre olarak SQL cümleciğimizi verdik ve yine parametreyi iki
nokta ve akabinde ismi şeklinde tanımladık. SQL cümleciğinde tanımlı parametreyi metodun parametre kısmında da @Bind notasyonu ile tanımlıyoruz.
Akabinde sadece try bloğunun içerisini değiştirmek sureti ile kodumuzu çalıştıralım. Kodumuzun yeni hali şöyledir:
Verilen id’ye göre isim çekme işlemini başarı ile yaptı. Peki ben tablodaki bir kaydın tüm sütunlarını çekmek istersem? JDBI bu işlem için öncelikle bir Mapper tanımlanasını şart koşuyor.
Bunun için biz de şöyle bir Mapper yazıyoruz:
PersonMapper sınıfımızı ResultSetMapper arabiriminden implemente ediyoruz ve ResultSetMapper sınıfına Person sınıfı kullanacğaımızı söylüyoruz. Sınıf içerisinde map metodunu Override ediyoruz.
Override ettiğimiz metot içerisinde bir Person nesnesi oluşturup ResultSet’den gelen bilgilerle dolduruyoruz. Son olarak da döndürüyoruz. Bu ResultSet’in doldurulması işlemine şimdi değineceğim.
PersonOperationsInterface arabirimine şu 3 satır kodu ekliyoruz:
Az önceki Select’den farklı olarak göreceğiniz üzere @Mapper(PersonMapper.class) ekledik. @Mapper notasyonuna verdiğimiz PersonMapper sınıfı içerisinde map metodu sorgu çalıştırıldığında
devreye girecek. Sorguyu çalıştırıp değeri ResultSet’e değeri alacak ardından Person nesnesini doldurup döndürecek.
Select işlemini yapacak kodumuzun yeni hali şöyle:
İlgili kaydı başarı ile çektik.
Son olarak bir de veritabanındaki 4 kaydı birden nasıl çekeceğimize bakalım.
Öncelikle PersonOperationsInterface içerisinde şu 3 satır eklenmesi işlemini gerçekleştiriyorum:
Tek bir Person kaydı çekmek için kullandığımız Mapper’ı aynı şekilde burada da kullanıyoruz. Metodumuza bir liste döndür diyoruz. İşlemi gerçekleştirecek kodumuz şu şekilde:
SelectAllRecordsOperation sınıfı içerisinde try bloğunda Interface içinde tanımlı metodu tetikliyoruz ve listeyi doldurup ekrana yazdırıyoruz. Konsol çıktısı şu şekilde:
Bu yazıda anlatacaklarım da bu kadar arkadaşlar. JDBI ile kayıt çekme işlemini öğrenmiş olduk. Gelecek yazıda kayıt güncelleme konusuna değineceğiz.