• Google Guava Örneği
  • Flutter, Dart?
  • Ignite ?
  • Yine yine yeniden?
Main Menu

Java – Functions / CallableStatement Kullanımı

postgresql ayarları

Merhaba, bugün ilk defa kullandığım ve büyük projelerde kullanılan Functions'tan biraz bahsetmek istiyorum.
Basit olarak şu şekilde bahsedeyim, daha doğrusu ben böyle yorumluyorum.

Geniş çaplı bir projeniz var.
Burada bir hesaplama yapıyorsunuz yada kullanıcının bir değeri projenin bir çok yerinde size lazım oluyor.
Bu işlemleride DB'de yapmak istiyorsunuz, iş yükünü DB yapsın istiyorsunuz.
PostgreSQL üzerinden gidecek olursak yeni SQL sorgu ekranı açıyoruz.
Dip bir anlatım olması için basit 2 sayıyı toplama işlemi yaptıracağım ama emin olun fazlasıyla işlevi olan bir yapı.
Açılan ekrana aşağıdaki kodu yazıyoruz.

CREATE FUNCTION toplama(sayi1 integer, sayi2 integer) RETURNS integer AS '
DECLARE
toplam integer;
BEGIN
toplam := sayi1 + sayi2;
return toplam;
END;
' LANGUAGE 'plpgsql';

Burada toplama adında bir FUNCTION  oluşturduk, 2 adet parametre tanımladık ve dönüş tipini belirttik.
( Default olarak IN olarak parametre ekliyor )
DB kısmı bu kadar.

Şimdi bunu nasıl kullanacağımızı göstermek istiyorum.
JDBC bağlantılarını yaptıktan sonra PreparedStatement olarak değil, CallableStatement olarak kullanım yapacağız.
Örnek olarak.


CallableStatement callableStatement = null;
Integer sonuc = null;
try {

callableStatement = getConnection().prepareCall("{ call toplama(?,?) }");
callableStatement.setInt(1, 24);
callableStatement.setInt(2, 12);
callableStatement.executeUpdate();

ResultSet result = callableStatement.executeQuery();

while (result.next()) {
sonuc = result.getInt("toplam");
}
} catch (Exception e) {
e.printStackTrace();
logger.error(e);
}
return sonuc;

Sonuç size 36 olarak dönecektir.

Bugün ilk defa kullandığım bir yapı, bende yeniyim ama bundan sonra kişisel ve şirket tarafında geliştirdiğim projelere kesinlikle dahil edeceğim.
Herhangi bir sorunda yazın lütfen, bir hata durumunda bende yeni şeyler öğrenmiş olurum.
Önümüzdeki bir kaç ay Functions - Trigger Functions - Views gibi konular üzerinde durmaya çalışacağım.
Bunun yanında umarım Ubuntu Server'ada bakabilirim.
Kolay gelsin..

Leave a Comment

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>