Java öğrenmeye karar verdiğinizde karşınıza sıkça çıkan bazı terimler vardır: POJO, SessionFactory, Hibernate, ORM gibi… İlk başta kulağa karmaşık gelse de bu kavramlar, aslında Java ile gerçek dünya uygulamaları geliştirmenin temel taşlarıdır.
Java öğrenmeye karar verdiğinizde karşınıza sıkça çıkan bazı terimler vardır: POJO, SessionFactory, Hibernate, ORMgibi… İlk başta kulağa karmaşık gelse de bu kavramlar, aslında Java ile gerçek dünya uygulamaları geliştirmenin temel taşlarıdır.
Bu yazımızda, özellikle Vektörel Bilişim Java Kursukatılımcılarından gelen sorularla şekillendirilmiş şekilde, POJO (Plain Old Java Object)ve Session Factorykavramlarını sade bir dille açıklayacağız. Ayrıca bu kavramlar hakkında internette en çok aratılan sorulara net cevaplar vereceğiz.
POJO (Plain Old Java Object) Nedir?
POJO, yani "Plain Old Java Object", karmaşık kalıtım yapıları ya da framework bağımlılıkları içermeyen, sade ve yalın Java sınıflarını ifade eder. Aslında her Java geliştiricisinin yazdığı sıradan sınıflardır.
POJO’nun Temel Özellikleri:
- JavaBean kurallarına uyar.
- public erişim belirleyicili getter ve setter metotlarına sahiptir.
- Argümansız (default) bir constructor içerir.
- Genellikle private değişkenler (fields) kullanılır.
public class Kullanici { private String ad; private String soyad; public Kullanici() {} public String getAd() { return ad; } public void setAd(String ad) { this.ad = ad; } public String getSoyad() { return soyad; } public void setSoyad(String soyad) { this.soyad = soyad; } }
POJO Neden Önemlidir?
Özellikle Hibernate gibi ORM (Object-Relational Mapping) teknolojilerinde POJO sınıfları, veritabanı tablolarının temsilcisi olarak görev yapar. Yani yukarıdaki Kullanici sınıfı, veritabanında bir "kullanici" tablosunun karşılığı olabilir.
Session Factory Nedir?
SessionFactory, Hibernate framework’ü içerisinde, veritabanı ile bağlantı kurmayı sağlayan oturumların (Session) üreticisi olan bir yapıdır. Genellikle uygulama başlarken bir kez oluşturulur ve tüm uygulama boyunca kullanılır.
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session = sessionFactory.openSession();
Hibernate mimarisinde Session, veritabanı işlemlerini gerçekleştiren nesnedir. Ancak bu Session’ları üreten yapı SessionFactory’dir.
En Çok Merak Edilen Sorularla POJO & SessionFactory
1. POJO sınıfı illa getter/setter içermek zorunda mı?
Evet, Hibernate gibi framework’lerde POJO sınıflarının getter ve setter metotlarını içermesi, ORM işlemlerinin doğru çalışması açısından önemlidir.
2. POJO ve JavaBean aynı şey mi?
Hayır. Her JavaBean bir POJO’dur ama her POJO bir JavaBean değildir. JavaBean daha sıkı kurallara sahiptir (örn. Serializable olmalı).
3. POJO sınıfları neden default constructor içerir?
Hibernate gibi araçlar, nesneleri yansıtma (reflection) yoluyla oluşturduğu için varsayılan constructor’ın (parametresiz) olması şarttır.
4. SessionFactory her seferinde mi oluşturulmalı?
Hayır. SessionFactory nesnesi pahalı bir nesnedir. Yani sürekli oluşturulup yok edilmesi performans kaybına neden olur. Bu yüzden genellikle singleton pattern ile bir kez oluşturulur.
5. SessionFactory yerine EntityManager kullanılabilir mi?
Evet. JPA (Java Persistence API) kullanıldığında EntityManager tercih edilir. Ancak arka planda yine Hibernate kullanılabilir.
6. Hibernate Configuration dosyası olmadan SessionFactory kurulabilir mi?
Evet, Java kodu içerisinde programatik olarak yapılandırma yapılarak da SessionFactory kurulabilir. Ancak hibernate.cfg.xml dosyası kullanmak daha yaygındır.
Gerçek Hayatta Kullanımı: POJO + SessionFactory
Diyelim ki bir e-ticaret uygulaması geliştiriyorsunuz ve sipariş verilerini yönetmek istiyorsunuz. İşte o zaman POJO sınıfınız şu şekilde olabilir:
@Entity @Table(name = "siparisler") public class Siparis { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; @Column(name = "urun_adi") private String urunAdi; // getter - setter metotları }
Bu sınıfın veritabanıyla ilişkilendirilmesi, Hibernate ve SessionFactory aracılığıyla gerçekleşir. Verileri veritabanından okuyabilir, güncelleyebilir veya yeni kayıt ekleyebilirsiniz.
Java Öğrenmeye Nereden Başlamalıyım?
Java dünyası ilk başta karmaşık görünse de doğru rehberlikle öğrenmek çok kolaydır. Eğer hem temel hem ileri düzeyde Java öğrenmek, POJO, Hibernate, Spring Boot gibi teknolojilere hâkim olmak istiyorsanız, Vektörel Bilişim Java Kursusizin için en doğru adım olabilir.
Bu kursta:
- POJO kullanımıyla nesne tabanlı programlama temelleri
- Hibernate ile ORM işlemleri
- SessionFactory yönetimi
- Veritabanı bağlantıları ve DAO yapıları
...gibi pek çok önemli konu uygulamalı olarak öğretilmektedir.
Java’da Gerçek Dünya Uygulamaları İçin POJO ve SessionFactory Şart
Java, güçlü ve esnek bir dildir. Ancak bu dili etkin kullanmak için doğru kavramları bilmek ve doğru araçları kullanmak gerekir. POJO sınıfları ve SessionFactory, Java dünyasında veritabanı ile konuşan uygulamaların temel yapı taşlarıdır.
Eğer siz de bu kavramları sağlam bir şekilde öğrenmek ve Java’da bir adım öne çıkmak istiyorsanız, Vektörel BilişimJava Eğitimitam size göre.