Spring Boot PostgreSQL Bağlantısı Nasıl Yapılır? (JPA Ayarları)
Spring Boot uygulamanızı PostgreSQL'e bağlamak için iki temel adım gerekir: Öncelikle pom.xml dosyanıza PostgreSQL JDBC Driver ve Spring Data JPA bağımlılıklarını eklemelisiniz. Ardından application.properties dosyasına veritabanı URL'nizi (jdbc:postgresql://localhost:5432/db_adi), kullanıcı adınızı ve şifrenizi tanımlayarak bağlantıyı sağlayabilirsiniz.
Bu yazıda Spring Boot uygulamasını PostgreSQL veritabanına bağlama işlemini adım adım inceleyeceğiz. Veritabanı bağlantısı için farklı yöntemler bulunsa da bu rehberde sektör standardı olan Spring Data JPA ile entegrasyonu ele alacağız.
1. PostgreSQL Bağımlılığını Projeye Ekleme
İlk olarak PostgreSQL JDBC driver bağımlılığını pom.xml dosyamıza eklememiz gerekir. Bu bağımlılık (driver), Spring Boot uygulamasının PostgreSQL veritabanı ile ağ üzerinden iletişim kurmasını sağlar.
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>
<version>) yazmanıza gerek yoktur. Spring Boot sürüm yöneticisi en uyumlu ve güvenli versiyonu otomatik olarak çekecektir.
2. application.properties Dosyasını Yapılandırma
Bağımlılığı ekledikten sonra projenizin src/main/resources dizininde bulunan application.properties dosyasına PostgreSQL bağlantı kimlik bilgilerinizi eklemelisiniz.
spring.datasource.url=jdbc:postgresql://localhost:5432/Deneme
spring.datasource.username=postgres
spring.datasource.password=sifre
- localhost:5432 : Veritabanının çalıştığı sunucu adresi ve PostgreSQL'in varsayılan port numarasıdır.
- Deneme : Bağlanmak istediğiniz mevcut veritabanının adıdır. (Bağlanmadan önce pgAdmin veya komut satırı ile bu veritabanını oluşturduğunuzdan emin olun).
- postgres / sifre : PostgreSQL yönetici kullanıcı adı ve şifresidir.
3. Spring Data JPA Bağımlılığını Ekleme
Veritabanına bağlanmak yeterli değildir; tablolarla etkileşime girmek (CRUD işlemleri yapmak) için bir ORM (Object Relational Mapping) aracına ihtiyacımız vardır. Bunun için Spring Data JPA bağımlılığını projemize dâhil ediyoruz.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
Bu bağımlılık sayesinde veritabanı işlemlerini karmaşık SQL sorguları yazmadan, basit Repository interface'leri aracılığıyla yönetebiliriz.
4. Hibernate ve JPA Ayarları
Son olarak, Hibernate'in (Spring Data JPA'nın arka planında çalışan ORM) veritabanı tablolarını nasıl yöneteceğini application.properties dosyasında yapılandıralım:
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
# spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect (Opsiyonel)
Bu Ayarlar Ne İşe Yarar?
- spring.jpa.hibernate.ddl-auto: Entity (Model) sınıflarınıza göre veritabanı tablolarının otomatik oluşturulmasını/güncellenmesini sağlar. Geliştirme ortamında genellikle
updateveyacreate-dropkullanılır. (Canlı ortamda (Production)validateveyanonekullanılmalıdır). - spring.jpa.show-sql: Hibernate tarafından arka planda oluşturulan SQL sorgularını terminalde (konsolda) görmenizi sağlar.
- spring.jpa.properties.hibernate.format_sql: Konsola basılan SQL çıktısını tek satır yerine düzenli (okunabilir) bir formata sokar.
PostgreSQL81Dialect kullanılırdı. Spring Boot 3.x ile birlikte Hibernate, bağlandığı veritabanının Dialect (lehçe) türünü otomatik olarak tanır. Bu yüzden Dialect ayarını manuel yazmanıza gerek yoktur.
5. Sonuç
Bu adımları takip ederek Spring Boot uygulamanızı PostgreSQL veritabanına başarıyla bağlamış oldunuz. Uygulamayı başlattığınızda konsolda herhangi bir hata almıyorsanız bağlantınız sorunsuz kurulmuş demektir.
Bağlantı işlemi tamamlandıktan sonra sıradaki adım Entity sınıfları oluşturmak ve Spring Data JPA üzerinden CRUD (Create, Read, Update, Delete) işlemleri gerçekleştirmektir. Bir sonraki yazımızda Repository kullanımı konusunu ele alacağız. İyi çalışmalar!