- DB işlemlerini ayrı bir katmanda
- DB classları üzerinden tamalayacağımız süreçleri servis katmanında
- Projenin Db connection ve Connection pool vb konfigürasyonlarını xml yada config classında
Örn :
Kullanıcı bilgilerini kaydettiğimiz bir tablomuz olsun. Bu tabloda yapabileceğimiz işlemler sil, kaydet,güncelle ve tablo yapısına göre tasarlayacağımız sorgu methodlarıdır.
Kullanıcı ile ilgili bir süreci barındıran methodu bu class içerisine yazmak:
- Süreci sadece DB işlemleri yapılan bir class'a bağımlı kılar,
- Kod okunurluğunu azaltır.
- Bir entegrasyon çalışmasında class web service, kullanıcı süreçleri ve db işlemlerini barındıracaktır. Görüldüğü gibi class üzerindeki yük artmakla beraber bizi esiri haline getirecektir :)
Kullanıcı hesabından para çekme işlemini ele alalım. Bankanın bir hesap birde kullanıcı tablosu olsun. Kullanıcı tablosuna özel bir class yazarsak bu class taki methodları istediğimiz her yerde kullanabiliriz. Aynı durum hesap tablosu içinde geçerli.
Serviste yapacağımız iş şudur:
- Kullanıcıyı bul,
- Hesap bilgilerini bul
- Tutarı hesaptan çek
- Kullanıcıyı bilgilendir
public Boolean paraCek(String kullaniciNo, float tutar){
.........................
}
Methodun içerisini doldurduğumuzda hem paraCekme sürecine sahip oluruz hemde bu süreci gerekli olan her yerde kullanabiliriz. B bankası da hesaptan para çekerken bu methodu kullanabilir. Süreç değişecekse sadece servis üzerinde değişir. Tabloda bir değişiklik olacaksa biz sadece tablo ve Java daki Entity karşılığını güncelleriz.
İste uzun uzun anlattığım bu işlemlerin tamamında spring ön planda olacaktır.
Spring ve JPA kullanılan Service ve DAO katmanlarını kullandığım örnek uygulama aşağıdaki gibidir. Uygulama Spring - JPA(Hibernate) kullanılarak hazırlandı. test isminde mysql de bir db oluşturun kullanıcı adı root şifre 1234 olsun. Yada var olan db'nizin ayarlarını resources altındaki
Project.properties dosyasında tanımlayın.
2 proje var. 1.si spring ve Jpa ile ilgili temel bilgiler için. 2. Proje ise yukarıda belirttiğim süreci işliyor.
Temel Spring JPA(Hibernate)
KULLANICI_HESAP_SPRING_JPA(HIBERNATE)
Ekran çıktıları :
Temel Spring JPA EKRAN ÇIKTISI |
KULLANICI HESAP ISLEMLERI EKRAN CIKTISI |
Katkılarından dolayı Dilaver DEMİREL ve Birol GÖKTEPE'ye teşekkürler.
İyi çalışmalar.
Hiç yorum yok:
Yorum Gönder