Spring Boot CRUD operasyonları(READ)

Latest Software Developers
4 min readJul 6, 2022

--

Herkese merhaba bu yazımızda sizlere spring boot kullanarak crud operasyonlarından read yani okuma işlemini gerçekleştireceğiz. Ben bu uygulamamda intellij idea kullanacağım. Sizler istediğiniz idea’yı kullanabilirsiniz. Veri tabanı olarak da postgresql kullanacağım.

Öncelikle pom.xml dosyamızı otomatik oluşturmak için https://start.spring.io/ sitesini kullanıyoruz ,burada Spring Web, PostgreSQL Driver ve Spring Data JPA dependencylerimizi ekliyoruz. Yapacağımız uygulamanın maven projesi olmasını istediğim için maven project seçeneğini seçiyorum ve benim bilgisayarımda jdk 1.8 kurulu olduğu için java 8 sürümümü seçiyorum oluşan görüntü aşağıdaki şekildeki gibi olmalıdır.

Gerekli işlemleri yaptıktan sonra generate butonuna tıklayarak oluşan projemizin dosyasını zip olarak bilgisayarımıza indiriyoruz. İndirme işleminden sonra zip dosyamıza sağ tıklayarak ayıklama işlemi gerçekleştiriyoruz. Bilgisayarınızın istediğiniz yerine ayıklayabilirsiniz.

Ayıkladığınız dosyayı intellij ideayı açarak open seçeneğine tıklayarak ayıkladığımız dosyayı seçiyoruz burada püf nokta olarak seçtiğim dosyayı pom.xml seçeneğine tıklıyoruz ve proje olarak dosyamızı açıyoruz aşağıdaki görseldeki gibi(Open as a project). Bu sayede açtığımız projeyi intellij maven projesi olarak algılıyor.

Bütün bu işlemleri tamamladıktan sonra kod yazma işlemlerimizi gerçekleştirmeye başlıyoruz.

Src klsörü altında main java dosyası altında com.example.demo paketinin içinde bulunan demoApplication sınıfı uygulamamızın aslında ilk çalıştırdığı sınıftır.

Uygulamamızı oluştururken oluşturmamız gereken paketler model paketi , controller paketi ve repository paketi olarak adlandırılır. Model paketi kabaca içinde uygulamamızın veri tabanında bulunan tablosuyla eşleşmesini sağlayan oluşturduğumuz model sınıfı bulunur. Controller paketinde ise aslında uygulamamızda isteği ilk olarak karşıladığımız sınıf bulunur ve repository paketinde ise yapacağımız read işlemini gerçekleştirmek için kullanacağımız fonksiyonlar bulunur.

Ben ilk olarak model paketimi oluşturmakla işe başlayacağım. Model paketi oluşturduktan sonra içerisine User class’ı oluşturacağım.

Kodumu aşağıdaki görseldeki gibi yazacağım.

Yukarıdaki görselde oluşturulan user class’ında

@Entity anotasyonu class’ın veri tabanından bir tabloya eşlendiği anlamına gelir.

@Table anotasyonu veri tabanındaki kullanılan tablo isminin belirtilmesinde kullanılır.

@Id anotasyonu ise veri tabanında kullanılan primary key(birincil anahtarı) temsil eder.

Kullanılan constructor’ın amacı, bir nesne oluşturmak ve herhangi bir nesne özelliği varsa değerleri ayarlamaktır.

Getter ve setter’lar değişkenlerin başka classlarda kullanılmasına imkan sağlar.(Object Oriented mantığı…)

Model paketini oluşturduktan sonra Repository paketini oluşturarak kodumu yazmaya devam ediyorum.

Repository paketini oluşturduktan sonra UserRepository isminde interface oluştururuz. Burada önemli olan nokta class değil interface oluşturmaktır. Jpa teknolojisini kullanacağım için JpaRepository özelliğini extend ediyorum. JpaRepository içinde barındırdığı birkaç metodu kullanmamıza olanak sağlar. Mesela bizim read işlemini yaparken kullanacağımız findAll metodu.

Aşağıda UserRepository için yazdığımız interface kodu görülmektedir.

Burada kullanılan User uygulamada kullandığımız modeli temsil eder Long ise o modelde kullanılacak birincil anahtar(primary key)’ın oluşturulan tipini temsil eder.

Repository paketimi de tamamladıktan sonra gelen istekleri karşılayan ve uygulama içerisinde yönlendirme yapılmasını sağlayan UserController sınıfımı oluşturacağım. Aşağıdaki görseldeki gibi.

Controller paketi içinde UserController class’ını oluşturduktan sonra kodumu aşağıdaki görseldeki gibi yazıyorum.

UserController class’ı içerisinde bulunan

@RestController anotasyonu oluşturduğumuz class’ın bir controller class olduğunu belirtir.

@RequestMapping anotasyonu oluşturacağımız class’a istekte bulanacağımız adresini belirlememize yardımcı olur.

UserController class’ında UserRepository interface’ini çağırıp bu interface içerisindeki metotları kullanacağız. Burada kullanılan @Autowired ise otomatik olarak dependency injection yapılmasına olanak sağlar.

Daha sonra List<User> tipinde bir metod tanımlıyoruz. Bu User tipinde bir liste tanımladığımız anlamına gelir ve bu metodun içinde findAll() fonksiyonunu return ediyoruz. Burada kullanılan @GetMapping anotasyonu veri tabanından veriyi çekeceğimiz/okuyacağımız için kullanılır.

Bütün bu işlemleri tamamladıktan sonra uygulamamızın dosya görüntüsü aşağıdaki görseldeki gibi olacaktır.

Kodlarımızı yazdıktan sonra uygulamamızın veri tabanıyla bağlantısını ayarlarını sağlamak için resources altında bulunan application.properties’ e aşağıdaki özellikleri ekleriz.

spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect

spring.jpa.hibernate.ddl-auto=none

spring.jpa.hibernate.show-sql=true

spring.datasource.url=jdbc:postgresql://localhost:5432/DatabaseAdı

spring.datasource.username=postgres

spring.datasource.password=şifre

Bu özellikleri de eklediğimize göre uygulamamızı debug tuşuna basarak çalıştırabiliriz. Uygulamamızı çalıştırdıktan sonra çıkan sonucu görebilmek adına http://localhost:8080/api/listele adresinden çıkan sonucu gözlemleyebiliriz.

Burada 8080 portunun kullanılmasının sebebi özellikle belirtilmediği sürece uygulama otomatik olarak 8080 portunda çalıştırılır. Sorularınızı yorum olarak yazabilirsiniz.

Bu yazımızın sonuna geldik. Bizi latestsoftwaredevelopers.com adresinden de takip edebilirsiniz. Bir sonraki yazımızda görüşmek üzere. İyi çalışmalar.:)

--

--

Latest Software Developers

Blog where the most up-to-date software is followed.(En güncel yazılımların takip edildiği blog sitesi) https://latestsoftwaredevelopers.com