28 Mayıs 2010 Cuma

Hibernate Criteria (Sorgu SQL) oluşturma

Criteria class'ınıı kullanarak sorgu oluşturabiliyoruz.

Nasıl mı?:)

Kisi.java isimli bir classımız olsun


public class Kisi{
private String isim;
private String soyIsim;

....getter and setter methods....
}


---

public class Test {

List isimListesi= new ArrayList();


Criteria crit = session.createCriteria(Kisi.class);
crit.add( Expression.eq( "isim", "Halime Oral" ) );


isimListesi= crit.list(); //hql ile alınan sorgu sonuçlarını listeye aıyoruz

}




criteria expression:

Restriction.allEq = Bütün değerler eşitse

Restriction.between = arasında

Restriction.eq = eşise

Restriction.ge = büyük eşitse

Restriction.gt =büyükse

Restriction.le = küçük eşitse

Restriction.lt = küçükse

Restriction.ne= eşit değilse

27 Mayıs 2010 Perşembe

Hibernate Öğreniyorum (Hibernate nedir?)

Hibernate'i tam anlamıyla öğrenmeye çalışırken web'den bulduğum yazıları derkeleyerek ve kaynak gösterek bir yere not etmek istedim.

başlandıç olarak

Hibernate, Java platformunda yazılmış bir ORM (Object/Relational Mapping) aracıdır. ORM, nesne odaklı (object oriented) dillerdeki nesnelerin, ilişkisel veritabanlarındaki (relational databases) kayıtlara nasıl karşılık geldiğini yürüten bir teknolojidir. NHibernate adında .NET çatısı için yeniden yazılmış bir türevi bulunur.

Hibernate gibi ORM araçlarıyla, bir nesneyi veritabanına kaydetmek, yeni halini güncellemek ve sorgulama yapmak düz SQL bağlantılarına göre çok kolaydır.

Örneğin, JDBC ile veritabanına bir kayıt eklemek için şuna benzer bir kod yazılır:

stmt.executeUpdate( "INSERT INTO KAHVE VALUES ('Colombian', 101, 7.99, 0, 0)");

Burada, "KAHVE" tablosuna bir kayıt eklenmekte. Böyle bir işlemi Hibernate ile yapmak için:

session.saveOrUpdate(kahve);

kahve, bildiğimiz düz bir java nesnesidir (POJO).

Hibernate gibi ORM araçlarının en önemli faydası, kod yazımını kısaltmak veya kolaylaştırmaktan öte, yazılım bakımını kolaylaştırmasıdır. Veritabanı temelli uygulamalarda, kodun 1/3´ü veritabanı erişimine yöneliktir. Veritabanındaki bir kolonunun tipinin değişmesi, yeni bir kolon eklenmesi gibi değişiklikler, bütün veri erişim kodunu tekrar gözden geçirmeyi gerektirir. Hibernate ile bu gözden geçirmeden çok yüksek oranda tasarruf edilir. Hibernate kullanılan yazılımlarda, veritabanındaki değişikliklerde yapılması gereken sadece nesnelerle tabloların birbirine nasıl eşleştirildiğinin (mapping) gözden geçirilmesidir.

kaynak: http://tr.wikipedia.org/wiki/Hibernate

sisteme nasıl entegre edilmesi için ise şağıdaki linki takip edin :)

http://www.ceviz.net/hibernatee-giris_a1215.html
.
.

24 Mayıs 2010 Pazartesi

iReport'ta Yazıya Özellikleri Verme


Herzamanki gibi ilgili alanlar seçilir ve properties'den sırayla;

Font Name: Yazı ismi :)
Size : Boyutu
Bold : kalın olsun mu?
Italic : eğik olsun mu?
Underline : altı çizik olsun mu?
Strike Through : üstü çizik olsun mu? (Galiba!..)
Pdf Font Name : Pdf üretildiğindeki yazı adı
Pdf Embedded : Pdf gömülsün mü? (anlamadım :))
pdf Encoding : Karakter ayarı (Türkçe karakter sorunu buradan giderilir)
Horizontal Alignment : yazı ortalansın mı, sola mı yoksa sağa mı yaslansın
Vertical Alignment : Yazı ilgili alanın üstünde mi ortasındamı yoksa tabanında mı yer alsın
Rotation : hiçbiri, sağ, sol (none, right, left)
Line Spacing : Yazı uzun geldiğinde alt satıra kaysın mı?

iReport'ta null sorunu ve çözümü

Raporu tasarladınız ve kodu yazdınız. Boş gelen alanlar rapora basıldığında boş gözükmesi yerine "null" diye yazar. Kötü br görüntü :) Oysa ki siz eger içeride değer yoksa hiçbirşey yazmamasını istersiniz.

bunun için de çözüm basit.

aslında textField olarak tanımlanmış tüm alanlar için bu uygulamayı yaparsak tekrar aynı sorunla karşılaşılmaz. alan(lar) seçilir ve yine sağ taraftaki properties'den "Blank When Null" kutucuğunu işaretleyip (.jasper uzantılı dosyayı silmeyi unutmuyoruz) tekrar programı çalıştırdığımızda sorunumuz ortadan kalkmış olacaktır.

.
.
.

iReport Türkçe karakter sorunu ve çözümü

Eclipse'te;

Map allJrxmlParams = new HashMap();

allJrxmlParams.put("adi", "Ayşe Fatma");

adi alanına String olarak verebilecğeimiz gibi veri tabanından da çekerek verebiliriz.


ireport ile formu tasarladınız ve eclipse'de ilgili alana ilgili kaydı getirdiniz. Fakat türkçe karakter sorunu ortaya çıktı.

Bunun çözümü :

$F{adi}

ilgili alanı secip sağ tarafta bulunan Properties'deki Pdf Encoding ayarını "CP1254 (Turkish)" olarak secip kaydediyoruz.

ilgili jrxml daha önceden derlendiği için .jasper uzantılı dosyayı siliyoruz. aksi takdirde yapılan değişiklik kaydedilmeyecektir.

sildikten sonra tekrar derlendiğinde türkçe karakter sorunu ortadan kalkmış olacaktır.

14 Mayıs 2010 Cuma

Locale göre ayları getirmek :)

.
.
.

Ay isimlerini tek tek message bundle'lara yazmak yerine şu şekilde bir kod buldum :)

programda hangi dil seçilirse o dil'e göre getirmekte ay isimlerini



int month = 4;
int year = 2010;

//Get Month's Names by locale :)
// Locale locale =Locale.getDefault();
Locale selectedLanguage = (Locale) Component.getInstance("org.jboss.seam.core.locale");
DateFormatSymbols symbols = new DateFormatSymbols(selectedLanguage);
String[] months = symbols.getMonths();

String monthN = months[month - 1];
allJrxmlParams.put("bordroAyYil", monthN + " / " + year);
.
.