Odak modu
Hibernate üzerinden veritabanı işlemlerini sessionlar aracılığıyla yönetebiliriz. Bu konuda Hibernate, JPA (Java Persistence API) uyguladığı için veritabanıyla olan sınıf nesne ilişkilerimizi entity sınıfları aracılığıyla yapıyoruz. Önceki bölümde oluşturduğumuz "Customer" entity sınıfını projemize dahil ettik.
Hibernate kullanımında, temel işlemler genellikle session ve transaction kullanarak gerçekleştirilir. Örneğin, bir transaction başlatmak için "session.beginTransaction()" kullanılır. Daha sonra, işlemler başarılı bir şekilde gerçekleşirse "transaction.commit()" yapılır, hata durumunda ise "transaction.rollback()" ile geri alınır. Son olarak, "session.close()" ile session kapatılır.
Aşağıda, temel bir işlem adımı sırasını içeren bir örnek bulunmaktadır:
try {
// Session başlatma ve transaction başlatma
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
// Veritabanı işlemleri burada gerçekleştirilir
// Transaction'ı commit etme
transaction.commit();
} catch (Exception e) {
// Hata durumunda transaction'ı geri al ve exception yazdır
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
} finally {
// Session'ı kapat
if (session != null) {
session.close();
}
}
Bu örnekte, veritabanı işlemleri try bloğu içinde gerçekleştirilmekte ve bir hata durumunda catch bloğu içinde işlemler geri alınmaktadır. Son olarak, finally bloğunda ise session kapatılmaktadır.
Entity sınıflarını Hibernate'e tanıtmak için, configure kısmında "ADD annotated Class" ile ilgili sınıfların belirtilmesi gerekir. Bu örnekte, "Customer" entity sınıfını eklemek için "ADD annotated Class Customer" ifadesini kullanmıştır.
Ayrıca, veritabanına kayıt eklemek, güncellemek veya silmek için "session.persist()", "session.update()" ve "session.remove()" gibi yöntemler kullanılır. Örneğin:
Customer customer = new Customer();
customer.setName("Test");
customer.setGender(Customer.GENDER.FEMALE);
customer.setCreationDate(LocalDate.now());
customer.setMail("[email protected]");
try {
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
// Veritabanına kayıt ekleme
session.persist(customer);
// Transaction'ı commit etme
transaction.commit();
} catch (Exception e) {
// Hata durumunda transaction'ı geri al ve exception yazdır
if (transaction != null) {
transaction.rollback();
}
e.printStackTrace();
} finally {
// Session'ı kapat
if (session != null) {
session.close();
}
}
Bu örnekte, yeni bir "Customer" nesnesi oluşturulmuş ve veritabanına eklenmiştir.
Hibernate Query Language (HQL) ile veritabanından veri çekmek için "session.createQuery()" kullanılır. Örneğin:
List<Customer> customers = session.createSelectionQuery("FROM Customer", Customer.class).getResultList();
Bu ifade ile tüm müşteri verilerini liste olarak çekebilirsiniz. Ayrıca, tek bir kayıt çekmek için "getSingleResult()" kullanılabilir ve olmayan bir kayıt durumunda "NoResultException" alınabilir.
Bu temel bilgiler doğrultusunda Hibernate'in veritabanı işlemlerini yönetme sürecini anlamış olduk. İlerleyen bölümlerde daha fazla detay ve örnek göreceğiz.
Yazılım Kariyerinde İlerlemeni Hızlandıracak Programlar
Patika+ programlarımız ile 4-8 aylık yoğun yazılım kamplarına katıl, temel bilgilerden başlayarak kapsamlı bilgiler edin, yazılım kariyerine başla!
Yorum yapabilmek için derse kayıt olmalısın!