JDBI İle Database İşlemleri 4 - Kayıt Silme
Merhabalar.
JDBI yazılarının sonuncusu olan bu yazıda JDBI ile kayıt silme işlemine değineceğiz.
Benim elimde şöyle bir People tablosu bulunuyor:
Şimdi burada id bilgisi 3 olan kaydı silme işlemi yapmak istediğimizi varsayalım. Bu durumda PersonOperationsInterface arabirimine şu iki satır kodu ekliyorum:
@SqlUpdate("delete from people where id= :id")
public void deleteOneRecord(@Bind("id") int id);
Yine veri tabanı üzerinde bir değişim durumu söz konusu olduğu için metot @SqlUpdate notasyonu ile işaretli. Notasyona id’si verilecek kaydın silinme işlemini yapacak SQL komutunu parametre olarak verdik. SQL komutu içinde kullanılacak parametreyi de metodun parametre kısmında @Bind notasyonu ile tanıttık.
Silme işlemini yapmak için de kodumuz şu şekilde olacak:
package com.ilkaygunel.jdbitutorial.operation;
import com.mysql.cj.jdbc.MysqlDataSource;
import org.skife.jdbi.v2.DBI;
public class DeleteOneRecord {
public static void main(String[] args) {
MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setURL("jdbc:mysql://localhost:3306/JDBIDatabase");
mysqlDataSource.setUser("root");
mysqlDataSource.setPassword("");
DBI dbi = new DBI(mysqlDataSource);
PersonOperationsInterface personOperationsInterface = null;
try {
personOperationsInterface = dbi.open(PersonOperationsInterface.class);
personOperationsInterface.deleteOneRecord(3);
System.out.println("The Record Deleted Successfully!");
} catch (Exception e) {
System.err.println("An Error Occured!\n Error is:" + e);
} finally {
if (personOperationsInterface != null) {
personOperationsInterface.close();
}
}
}
}
personOperationsInterface.deleteOneRecord(3); diyerek tablodaki id bilgisi 3 olan kaydın silme işlemi yapılacak.
Metodu çalıştırdığımda konsol çıktısı şu şekilde oluyor:
Tabloya gidip baktığımda ise kaydın gerçekten silindiğini görmekteyim:
Eğer tablodaki tüm verileri silmek istersek de şu 2 satır kodu PersonOperationsInterface sınıfımıza ekleyip çağırmamız gerekecektir:
@SqlUpdate("delete from people")
public void deleteAllRecords();
Metodumuzun görevi tüm kayıtları silmek olduğu için herhangi bir parametre geçişine ihtiyaç duymuyor.
DeleteAllRecords sınıfımız da şu şekildedir:
package com.ilkaygunel.jdbitutorial.operation;
import com.mysql.cj.jdbc.MysqlDataSource;
import org.skife.jdbi.v2.DBI;
public class DeleteAllRecords {
public static void main(String[] args) {
MysqlDataSource mysqlDataSource = new MysqlDataSource();
mysqlDataSource.setURL("jdbc:mysql://localhost:3306/JDBIDatabase");
mysqlDataSource.setUser("root");
mysqlDataSource.setPassword("");
DBI dbi = new DBI(mysqlDataSource);
PersonOperationsInterface personOperationsInterface = null;
try {
personOperationsInterface = dbi.open(PersonOperationsInterface.class);
personOperationsInterface.deleteAllRecords();
System.out.println("All Records Deleted Successfully!");
} catch (Exception e) {
System.err.println("An Error Occured!\n Error is:" + e);
} finally {
if (personOperationsInterface != null) {
personOperationsInterface.close();
}
}
}
}
Kodu çalıştırdığımızda konsol çıktısı şu şekilde olmaktadır:
Veritabanına gidip baktığımda ise tüm kayıtların gerçekten silinmiş olduğunu görmekteyim:
Bu yazıda anlatacaklarım da bu kadar arkadaşlar. JDBI yazı dizisini tamamlamış olduk. Başka yazılarda görüşmek üzere sağlıcakla kalın.
Selam ve Sevgilerimle