Odak modu
Bu yazıda, Java Persistence API (JPA) ve veri tabanı işlemleri üzerine daha detaylı bir bakış açısı geliştireceğiz. Önceki konuda "transaction" kavramını öğrendik ve şimdi bu konsepti daha derinlemesine ele alacağız.
Öncelikle, JPA'nın temelini oluşturan "Entity Manager" üzerinden veri tabanına erişimi ele alalım. JPA, bu Entity Manager üzerinden veritabanı işlemlerini yönetmemize olanak tanır. Bir veri tabanı üzerinde çalışırken, genellikle bir "transaction" içinde bir dizi sorgunun işlenmesi gerekebilir.
Örneğin, elimizde bir "customer" tablosu var ve bu tabloya yeni bir müşteri eklemek istiyoruz. İşte burada "transaction" devreye girer. Bir "transaction" oluşturarak, bu işlemleri bir araya getirebilir ve ya tamamının başarılı bir şekilde gerçekleşmesini sağlayabiliriz ya da hiçbirinin gerçekleşmemesi durumunda geri alabiliriz.
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
Customer newCustomer = new Customer();
newCustomer.setName("Mustafa");
newCustomer.setMail("[email protected]");
newCustomer.setGender(Customer.GENDER.MALE);
newCustomer.setOnDate(LocalDate.now());
entityManager.persist(newCustomer);
transaction.commit();
Yukarıdaki kod bloğunda görüldüğü gibi, "persist" metodu kullanılarak yeni müşteri verisi veri tabanına eklenir ve "commit" metodu ile bu değişiklikler kalıcı hale getirilir. Eğer bir hata oluşursa, "rollback" metodu kullanılarak yapılan değişiklikler geri alınabilir.
Ancak, dikkat edilmesi gereken önemli bir nokta var. Eğer bir veriyi güncellemek veya silmek istiyorsak, bu işlemleri de bir "transaction" içinde yapmalıyız. Aşağıda bir müşteri güncelleme örneği görülmektedir:
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
Customer customerToUpdate = entityManager.find(Customer.class, 1L);
customerToUpdate.setName("UpdatedName");
entityManager.merge(customerToUpdate);
transaction.commit();
Benzer şekilde, bir müşteriyi silmek için de şu şekilde bir yapı kullanabiliriz:
EntityTransaction transaction = entityManager.getTransaction();
transaction.begin();
Customer customerToDelete = entityManager.find(Customer.class, 1L);
entityManager.remove(customerToDelete);
transaction.commit();
Bu işlemlerde de, "merge" metodu güncelleme işlemini, "remove" metodu ise silme işlemini gerçekleştirir.
Bu örneklerle, JPA kullanarak veri tabanı işlemlerini nasıl yönetebileceğimizi daha iyi anlamış olduk. Ancak, bu işlemlerle ilgili olarak daha spesifik sorgular yapmak istediğimizde, JPQL (Java Persistence Query Language) kullanabiliriz.
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!