Mevlüt Becerikli

Basit diye bir ÅŸey yok !!! Bilmeyene 2+2 bile zor…

Ekim 2009 için arsiv

Dinamik Oracle SQL Çalıştırma…

Yazan: Mevlüt Becerikli Tarih: Eki 16th, 2009 | Kategori:: Oracle, PL/SQL, Veritabanı

Önce bi tablomuzu oluşturalim;

CREATE TABLE test_table (kolon VARCHAR2 (100));

Sonra bu tablomuza bir kayıt girelim. Bunu basit bir SQL ifadesi ile değil de PL/SQL blokları içinde biraz parametrik yapmayı deneytelim;

DECLARE
v_sql VARCHAR2 (1000);
v_test_table VARCHAR2 (30) := ‘test_table’;
v_test_value VARCHAR2 (100) := ‘test value’;
BEGIN
v_sql := ‘INSERT INTO ‘ || v_test_table || ‘ values (:value)’;
EXECUTE IMMEDIATE v_sql USING v_test_value;
END;

Sorusu olan var mı ???

İyi Çalışmalar…


Multiple- Function Çağırma…

Yazan: Mevlüt Becerikli Tarih: Eki 16th, 2009 | Kategori:: Java

public class Ogrenci{

private int yas;
private String ad;
private int id;

public Ogrenci  setAd(String ad){

this.ad=ad;
return this;

}
public Ogrenci  setId(int id){

this.id=id;
return this;

}
public Ogrenci  setYas(int yas){

this.yas=id;
return this;

}
public static void main(String[] args) {

Ogrenci ogr = new Ogrenci().setYas(28).setId(1).setIsim(”Mevlut”);

}

}

İyi Çalışmalar…


Excel’ den veri okumak (POI API)

Yazan: Mevlüt Becerikli Tarih: Eki 14th, 2009 | Kategori:: Java

Java dilini kullanarak, Microsoft tabanlı bir formata sahip dosyalardaki iÅŸlemler için bir baÅŸka alternatif te POI API sidir. Åžu an mevcut sürümü 3.5 FINAL. Bu sürüm ile Office2007 de mevcut olan OOXML formatlı dosyalar da (DOCX, SLSX gibi) kadroya dahil oldu :)  Bu yazı, size sadece excel’ den nasıl veri okunabileceÄŸi hakkında fikir verecektir.

Excel dökümanımızın görüntüsü şu şekilde olsun;

Bunu okuyacak kodumuz da şu şekilde olacaktır.

Kodu satır satır açıklamaya girmicem ama kendi düştüğüm komik bir olayı paylaşayım. Burda BOOLEAN tipini test ederken bir türlü istediğim sonucu alamadım. Hep STRING olarak algılıyordu. Sonra öğrendim ki MS OFFICE programınızın dil ayarı önemli :) Ben TRUE/FALSE denerken aslında DOĞRU/YANLIŞ olması gerektiğini gördüm. Almanca denemek isteyenler içinde WAHR/FALSCH değerlerini kullanın :-)))

Çıktıyı unutmayalım;

Detaylı bilgi için http://poi.apache.org/ linkini ziyaret edebilirsiniz.
Önceki sürümlere göre tüm değişiklikleri içinm ise; http://poi.apache.org/changes.html
Gerekli kod kütüphanelerine de; http://www.apache.org/dyn/closer.cgi/poi/release/

İyi Çalışmalar…


IBM Yazılım Zirvesi ’09

Yazan: Mevlüt Becerikli Tarih: Eki 14th, 2009 | Kategori:: IT, Teknoloji

Bu sene İstanbul ve Ankara’ da düzenlenecek olan IBM Yazılım Zirvelerinde, IBM’ in mevcut teknolojilerinde ki son geliÅŸmeler, haberler ile birlikte yeni teknolojilerinin tanıtımı ve bu tüm teknolojilere yaklaşımları yakından incelenecektir. Programlar;

  • 15 Ekim - Ankara’ da Shareton Hotel
  • 22 Ekim - İstanbul’ da Swissotel the Bosphorus

Kaynak : http://www-01.ibm.com/software/tr/events/yazilimzirvesi2009/


CSV dosyası oluşturma

Yazan: Mevlüt Becerikli Tarih: Eki 13th, 2009 | Kategori:: Java

CSV (Comma Seperated Values) dosya formatı, her kaydın yeni satırla gösterildiği ve her kaydın sütunlarının (alanlarının) birbirinden virgül (,) ile ayrıldığı verilerden oluşur. Örnek bir CSV dosyası içeriği aşağıdaki gibidir.

Ad, Soyad, Yas, Telefon
Mevlüt, Becerikli, 28, 0533
Melih, Sakarya, 30, 0532

Şayet herhangi bir programlama dilinde dosya işlemleri ile biraz alakanız olduysa bunun oluşturulmasınında ne kadar kolay oldugunu tahmin edebilirsiniz. Bu dosyayı oluşturacak java kodu aşağıdadır;


package com.mevlutbecerikli.test;

import java.io.FileWriter;
import java.io.IOException;

public class GenerateCVS {

public static void main(String[] args) {
try {
FileWriter writer = new FileWriter(”c:\\test.csv”);

writer.append(”Ad”).append(’,');
writer.append(”Soyad”).append(’,');
writer.append(”Yas”).append(’,');
writer.append(”Telefon”).append(’\n’);

writer.append(”Mevlüt”).append(’,');
writer.append(”Becerikli”).append(’,');
writer.append(”28″).append(’,');
writer.append(”0533″).append(’\n’);

writer.append(”Melih”).append(’,');
writer.append(”Sakarya”).append(’,');
writer.append(”30″).append(’,');
writer.append(”0532″).append(’\n’);

writer.flush();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

Sonuç ;

İyi Çalışmalar…


Hibernate’ te Sorgular…

Yazan: Mevlüt Becerikli Tarih: Eki 13th, 2009 | Kategori:: Hibernate, Java

Bir ORM Framework’ ü olan Hibernate ile veritabanımızı 3 ÅŸekilde sorgulayabiliriz…

  1. session.createQuery()

    HQL syntax’ ını kullanarak sorgu nesnelerimizi oluÅŸturabiliriz. Örn;

    Query sorgu = session.createQuery(”from Ogrenci s where s.ad like ‘k%’ “);

  2. session.createSQLQuery()

    SQL syntax’ ını kullanarak sorgu nesnelerimizi oluÅŸturabiliriz. Örn;

    Query sorgu = session.createSQLQuery(”Select * from Ogrenci”);

  3. session.createCriteria()

    Criteria API‘ sini kullanarak basit, parametrik, karmaşık tüm sorgularımı çalıştırabiliriz.
    Sorgu ifadelerini elle yazmak istemeyenler için oldukça kullanışlıdır. Örn;

    Criteria criteria = session.createCriteria(Ogrenci.class)

İyi Çalışmalar…


JDBC & Hibernate arasındaki 11 fark …

Yazan: Mevlüt Becerikli Tarih: Eki 12th, 2009 | Kategori:: Hibernate, Java
  1. Hibernate veritabanından bagımsızdır. Kodunuz Oracle, MySQL, SQLServer..vs. farketmez hepsi için çalışacaktır. JDBC sorguları ise veritabanına özel olabilir.
  2. Hibernate, nesneler bütünü olduğundan SQL dilini öğrenmek zorunda deilsiniz. Sadece java dili bilgisi yeter. Bir tabloyu bir nesne olarak oluşturup Hibernate aracılığı ile veritabanında oluşturabilirsiniz. JDBC ile programlama SQL bilgisi gerektirir.
  3. Hibernate ile SQL şart olmadığından SQL ifadelerinin tuning işlemini de düşünmemize gerek kalmıyor. Hibernate özelliği olan Criteria Queries ile yaptığınız sorgular, Hibernate otomatik olarak performans ayarlamasını yapıp olası en iyi performansı size sağlayacaktır. JDBC seçeneğinde ise SQL inizi tune etme gibi bir ihtiyaç vardır.
  4. Hibernate ‘ in bir diÄŸer özelliÄŸide sunduÄŸu Cache mekanizmasıdır (2 seviyeli). Bu mekanizma, verimizi daha performanslı saklamamızı ve kullanmamızı saÄŸlayacaktır. JDBC ile yapılan uygulamalarda programlama tarafında kendi Cache mekanizmamızı kurmamız gerekecektir.
  5. Hibernate, yaptığımız sorgularıda Cache iÅŸlemine tabi tutabilmektedir. Bu sayede, hem veritabanının durumu hem de sorgularımız hakkında faydalı olabilecek istatistiksel bilgileri bize verir. JDBC‘ nin bize istatistiksel açıdan bir getirisi yoktur.
  6. Hibernate ile sorgu yazmamıza gerek olmadığından daha hızlı development yapabiliriz.
  7. Hibernate ile bağlantı havuzu (connection pool) oluşturma gibi bir ihtiyacımız yoktur.  c3p0 ı kullanabiliriz. JDBC ile kendi bağlantı havuzumuzu yazmamız gerekecektir.
  8. XML formadında olan Hibernate konfigurasyon dosyasından tablolar arası tüm ilişkileri rahatlıkla görebilir ve okuyabiliriz.
  9. “lazy=false” ifadesini kullanarak nesneleri baÅŸlangıçta yükleyebiliriz. JDBC nin böyle bir desteÄŸi yok.
  10. Hibernate, otomatik olarak kayıtları versiyonlamamızı sağlar ama JDBC de bu da yok.
  11. Hibernate‘ in, Search iÅŸlemleri ile için Java tabanlı Text Indexleme ve Full-Text Search motoru olan LUCENE ile halihazırda entegrasyonu mevcuttur. JDBC ile bunu da kendimiz implemente etmemiz gerekecektir.


Not :
Bu maddeler hibernate’ i kullanmamız için sebep gibi gözükse de, Hibernate’ in de dezavantajları mevcut olup seçim tamamen ihtiyaçlarımıza göre deÄŸiÅŸmektedir. Benimkisi sadece fikir sahibi olmanızı saÄŸlamak…

İyi Çalışmalar…