Hibernate Nedir? Kolayca Öğren!

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.


Hibernate

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…


Beğendin mi? Arkadaşlarınla paylaş!

1
1 puan
Emrecan Ay

0 Yorum

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir