Yazılım Makaleleri

Hibernate Nedir? Kolayca Öğren!

Verinin artık altından dahi daha kıymetli olduğu günümüzde, kaçınılmaz olarak onu işlemek de bir o kadar kıymetli bir hâl aldı.

Dolayısıyla verilerle ilgili birçok yeni fonksiyonel teknolojiler de hayatımıza girmiş oldu ve şüphesiz girmeye de devam edecek.

İşte Hibernate de bunlardan biri olarak sektörde sıkça tercih edilen noktaya ulaşan bir teknoloji oldu.

Peki Hibernate nedir?

Hibernate, 2001 yılında Gavin Kral tarafından geliştirilen bir ORM(Object Relational Mapping) çözümüdür. Yani ismi üzerinden gidecek olursak “nesne ilişkisel eşleme”.

Verileri işlemek için kullandığımız temel CRUD(create, read, update, delete) işlemleri JDBC ile yapıldığında satırlarca kod harcanabiliyor.

JDBC örneği;

statement = conn.createStatement();
            String query = "Select * From worker";
            
            ResultSet rs = statement.executeQuery(query);
            
            while (rs.next()) {                
                int id = rs.getInt("id");
                String name = rs.getString("name");
                String surname = rs.getString("surname");
                String department = rs.getString("department");
                int salary = rs.getInt("salary");                
   }

Örnekte gördüğünüz select işleminde, birçok satır harcandığını görebiliyoruz. Veriler ResultSet şeklinde geldiği için ayrıca onun kontrolünü de yapıyoruz. Dolayısıyla projemize satırlarca kod yüklenmeye devam ediyor. Bu da projemize yük olmakla birlikte zamanımızı da ciddi oranda etkiliyor.

Hibernate örneği;

List<City> cities = session.createQuery("from City").getResultList();
     
     for(City city:cities) {
      System.out.println(city.getName()); 
     }

Farkettiyseniz Hibernate sorgusu, bir SQL sorgusuna çok benziyor. Hibernate üzerinden yaptığımız sorgulara HQL diyoruz.

İşte örnekte de gördüğünüz gibi Hibernate ile bunca kodun önüne geçerek hem zamanımızı hem programımızı gereksiz yükten kurtarıyoruz. Peki bu nasıl oluyor?

Hibernate mantığı:

Veritabanındaki tablolarımızla, tablolarımızdaki bilgileri tutan sınıfları eşleştirip; sınıflar üzerinden veritabanındaki nesneleri hızlıca map ederek yani ilişkilendirerek verilere hızlı bir şekilde CRUD işlemleri uygulayabilmemizi sağlıyor.

Eşleştirme İşlemi

Aynı zamanda bu, transaction yönetiminden dolayı session yapısıyla yapıldığı için çok daha güvenli oluyor. Görselde görüldüğü üzere veritabanına sorgu değil, sorgunun içinde olduğu session gidiyor ve session’da birden fazla sorgu varsa hepsinin sorunsuz çalışması bekleniyor.

Terimler çok kafa karıştırıcı geliyor olabilir, hemen somut bir örneğe dökelim 🙂

Örneğin bir insert işlemi yaptınız ve hemen ardından da update yapacaksınız.

Eğer ikinci yaptığınız update işleminde bir sorun gerçekleşirse, ilk yaptığınız insert işlemi de geri alınır ve işlem öncesi veriler korunmuş olur.

Yazımızın sonuna gelirken bir insert işlemi üzerinden JDBC ve Hibernate karşılaştırması daha yapalım.

JDBC ile insert işlemi;

statement.executeUpdate("INSERT INTO admin VALUES ('Emrecan', 'Ay')");

Hibernate ile insert işlemi;

session.save(admin);

Evet, bu yazımızdaki amacımız Hibernate öğretmek değil; Hibernate öğrenmeden önce bir ön bilgi edinmek olduğundan Hibernate syntax’ına fazla girmiyoruz. Artık sıra öğrenmekte…

Ön bilgi açısından umarım faydalı bir içerik olmuştur. Yeni yazılarımda görüşmek üzere…

Emrecan Ay

Recent Posts

Su Krizine Karşı Teknolojik Çözümler Nelerdir? 2024

Günümüzde, dünya genelinde su kaynakları giderek azalıyor ve su krizi giderek artan bir endişe kaynağı…

% Gün Önce

Webcam Güvenliği: İpuçları ve En İyi Uygulamalar

Web kameraları, günümüzde hemen hemen her bilgisayarın ayrılmaz bir parçası haline gelmiştir. Uzaktan çalışma, eğitim…

% Gün Önce

Evdeki Akıllı Cihazlarınızı Siber Tehditlerden Nasıl Korursunuz?

Günümüzde teknolojinin ilerlemesiyle birlikte evlerimizde bulunan birçok cihaz internete bağlanabilmekte ve bu durum hayatımızı kolaylaştıran…

% Gün Önce

Yazılım Nedir ve Neden Önemlidir?

Günümüzün dijital çağında, hemen hemen her sektörde yazılımın rolü büyük bir önem taşımaktadır. Peki, yazılım…

% Gün Önce

Yeşil Teknoloji ve Sürdürülebilirlik: Geleceğin Çevre Dostu Çözümleri

Günümüzde, çevre sorunları ve sürdürülebilirlik, küresel ölçekte giderek artan bir önem kazanmaktadır. Yeşil teknoloji, bu…

% Gün Önce

Geleceğin Ulaşım Teknolojileri: Dijital Devrimin Taşıdığı Potansiyel

Geleceğin ulaşım teknolojileri, sadece daha hızlı ve daha verimli taşımacılık sağlamakla kalmıyor, aynı zamanda çevre…

% Gün Önce

This website uses cookies.