Spring Boot ile CRUD Operasyonları: Read (Okuma) İşlemi Nasıl Yapılır?
Herkese merhaba! Bu yazımızda, Spring Boot kullanarak CRUD operasyonlarından read (okuma) işlemini nasıl gerçekleştirebileceğinizi adım adım anlatacağız. Projemizde IntelliJ IDEA kullanacağız, ancak siz istediğiniz IDE’yi tercih edebilirsiniz. Veritabanı olarak PostgreSQL kullanacağız. Hadi başlayalım!
1. Proje Oluşturma
Spring Boot projesi oluşturmak için Spring Initializr sitesini kullanacağız. Bu adımları takip edin:
Spring Web, PostgreSQL Driver ve Spring Data JPA dependency’lerini ekleyin.
Maven Project seçeneğini seçin.
Java sürümü olarak Java 8’i seçin.
Generate butonuna tıklayarak projenizi ZIP olarak indirin.
ZIP dosyasını bilgisayarınıza çıkarın ve IntelliJ IDEA’da Open seçeneği ile projeyi açın. Projeyi açarken pom.xml dosyasını seçtiğinizden emin olun.
2. Proje Yapısı
Spring Boot projelerinde temel olarak üç paket kullanılır:
Model Paketi: Veritabanı tabloları ile eşleşen sınıfları içerir.
Repository Paketi: Veritabanı işlemlerini yöneten interface’leri içerir.
Controller Paketi: Gelen istekleri karşılayan ve yönlendiren sınıfları içerir.
3. Model Paketi Oluşturma
İlk olarak Model Paketi oluşturalım. Bu paket içinde User adında bir sınıf oluşturacağız.
package com.example.demo.model;
import javax.persistence.*;
@Entity
@Table(name = "users")
public class User {@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;private String name;
private String email;// Constructor
public User() {}// Getter ve Setter Metotları
public Long getId() {
return id;
}public void setId(Long id) {
this.id = id;
}public String getName() {
return name;
}public void setName(String name) {
this.name = name;
}public String getEmail() {
return email;
}public void setEmail(String email) {
this.email = email;
}
}
Açıklamalar:
@Entity: Bu sınıfın bir veritabanı tablosuna karşılık geldiğini belirtir.
@Table: Tablo adını belirtir.
@Id: Birincil anahtar (primary key) olduğunu belirtir.
@GeneratedValue: Otomatik artan bir değer olduğunu belirtir.
4. Repository Paketi Oluşturma
Repository Paketi içinde UserRepository adında bir interface oluşturacağız. Bu interface, JpaRepository’den türetilecek.
package com.example.demo.repository;
import com.example.demo.model.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}
Açıklamalar:
JpaRepository: CRUD operasyonları için hazır metotlar sağlar.
User: Model sınıfını, Long ise birincil anahtarın tipini belirtir.
5. Controller Paketi Oluşturma
Controller Paketi içinde UserController adında bir sınıf oluşturacağız. Bu sınıf, gelen istekleri karşılayacak.
package com.example.demo.controller;
import com.example.demo.model.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;
@RestController
@RequestMapping("/api")
public class UserController {@Autowired
private UserRepository userRepository;@GetMapping("/listele")
public List<User> getAllUsers() {
return userRepository.findAll();
}
}
Açıklamalar:
@RestController: Bu sınıfın bir controller olduğunu belirtir.
@RequestMapping: Temel URL yolunu belirtir.
@Autowired: Dependency Injection ile UserRepository’yi otomatik olarak bağlar.
@GetMapping: Veritabanından veri okumak için kullanılır.
6. Veritabanı Bağlantısı
application.properties dosyasına PostgreSQL bağlantı ayarlarını ekleyelim.
properties
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
7. Uygulamayı Çalıştırma
Projeyi çalıştırmak için Debug butonuna tıklayın. Uygulama başladıktan sonra tarayıcınızda aşağıdaki URL’yi açın:
http://localhost:8080/api/listele
Bu adres, veritabanındaki tüm kullanıcıları listeleyecektir.
8. Sonuç
Bu yazımızda, Spring Boot ile CRUD operasyonlarından read (okuma) işlemini nasıl gerçekleştirebileceğinizi öğrendiniz. Projenizi geliştirerek create, update ve delete işlemlerini de ekleyebilirsiniz.
Sorularınızı yorum kısmına yazabilirsiniz. Bir sonraki yazımızda görüşmek üzere, iyi çalışmalar!