Önceki yazımızda oluşturduğumuz örnek projede
spring.jpa.hibernate.ddl-auto = update
özelliği ile veritabanı şemasının Hibernate tarafından otomatik oluşturulmasını sağlamıştık. Fakat, çoğu zaman veri tabanı şemasının oluşturulması yeterli olmayıp, uygulamanın kullanılabilmesi için bazı ilk verilerin de eklenmiş olması gerekmektedir. Bu yazımızda uygulama ayağa kalkarken uygulama içinden ilk verilerimizi nasıl kaydedeceğimizi göreceğiz.
Veri tabanımıza veri kaydetmenin çeşitli yöntemleri vardır. SQL script dosyaları hazırlayıp, bu scriptleri çalıştırarak da veri tabanımızı doldurabiliriz. Fakat kullandığımız veri tabanına göre değişik scriptler hazırlamamız gerekebilir. Örneğin, MySQL ile çalışırken hazırladığımız scriptleri, Oracle veya başka bir veri tabanı kullanmaya karar verdiğimizde tekrar yazmamız gerekebilir. Hibernate teknolojisi bizi kullandığımız veri tabanı teknolojisinden soyutluyorken neden bunu ilk veri kaydederken de kullanmayalım?
Spring Boot Data JPA teknolojisini kullanarak oluşturduğumuz Repository'leri kullanarak, ApplicationReadyEvent'i dinleyen ApplicationListener beanlerimiz ile uygulama ayağa kalktığında veri atacağımız tabloyu kontrol edeceğiz. Eğer boşsa, eklemek istediğimiz entityleri oluşturup kaydedeceğiz.
Bu sınıflarımıza Data Populating Unit (Dpu) diyebiliriz. Uygulamamız ayağa kalktığında dog, bird, cat tipleri hâl-i hazırda eklenmiş olsun istiyoruz.
Birden fazla Dpu çalıştırmak istediğimizde dpu'ların çalışma sırası önem kazanıyor. Örneğin, dog tipinde Pet kaydedeceğimiz PetDpu çalıştırmak istiyorsak, öncelikle dog PetType nesnesinin veri tabanında kayıtlı olduğundan emin olmalıyız. Bu nedenle PetTypeDpu sınıfımızın, yazacağımız PetDpu'dan önce çalışması için @Order anotasyonu ile sıra belirliyoruz.
Tüm örnek proje kodunu Github'da şuradan indirebilirsiniz.
12 Mayıs 2018 Cumartesi
Spring Boot ile Veri Tabanına İlk Verileri Ekleme
Kaydol:
Kayıt Yorumları (Atom)
Java'da Thread ve Semaphore Kullanımı Bayram Harçlığı Örneği
Normal Dede, SemaphoreDede, AtomicDede ve SynchronizedDede torunlarına bayram harçlığını doğru bir şekilde dağıtabilecek mi? Bayram harçlığı...


-
Odaklanmak, 1000 iyi fikre hayır diyebilmektir. Steve Jobs Kod yalan söylemez, yorumlar bazen söyler . Ron Jeffries Tasarım, na...
-
Merhabalar. Tasarım desenleri iş mülakatlarında sıkça sorulan sorulardandır. Akılda kalıcı olması açısından gerçek hayattan örneklendirmekt...
-
Merhabalar, Özellikle esnaf kardeşlerin işine yarayacağını düşündüğümüz bir uygulama geliştirdik. link = QR Code & Barkod Okuyucu ...
-
OCR (Optical Character Recognition - Optik Karakter Tanıma), bize grafiksel dosyalardaki yazıları yakalama imkanı veren teknolojidir. Örne...
-
Merhabalar, REST servislerimizde domain entity (hibernate) nesnelerini direk dönmek güvenlik açığı oluşturabildiği gibi, bidirectional iliş...
-
Robert C. Martin'den Clean Code kitabı bizim yazılım sektöründe oldukça popüler. Yazılım geliştiricilere kodun sadece çalışmasının yetm...

Hiç yorum yok:
Yorum Gönderme