0
0
SpringbootHow-ToBeginner · 4 min read

How to Connect to PostgreSQL in Spring Boot Easily

To connect to PostgreSQL in Spring Boot, add the PostgreSQL driver dependency, configure the database URL, username, and password in application.properties, and use Spring Data JPA or JDBC templates to access the database. Spring Boot auto-configures the connection using these settings.
📐

Syntax

To connect Spring Boot to PostgreSQL, you need to:

  • Add the PostgreSQL JDBC driver dependency in your pom.xml or build.gradle.
  • Configure connection properties like URL, username, and password in application.properties or application.yml.
  • Use Spring Data JPA or JDBC templates to interact with the database.
properties
spring.datasource.url=jdbc:postgresql://localhost:5432/your_database
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
💻

Example

This example shows a simple Spring Boot application connecting to PostgreSQL using Spring Data JPA. It defines an entity, a repository, and a service to save and fetch data.

java
package com.example.demo;

import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Service;
import org.springframework.beans.factory.annotation.Autowired;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@Entity
class Person {
    @Id
    private Long id;
    private String name;

    public Person() {}

    public Person(Long id, String name) {
        this.id = id;
        this.name = name;
    }

    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; }
}

interface PersonRepository extends JpaRepository<Person, Long> {}

@Service
class PersonService {
    @Autowired
    private PersonRepository repository;

    public Person savePerson(Long id, String name) {
        return repository.save(new Person(id, name));
    }

    public Person getPerson(Long id) {
        return repository.findById(id).orElse(null);
    }
}
Output
No console output; data saved and retrieved from PostgreSQL database.
⚠️

Common Pitfalls

Common mistakes when connecting Spring Boot to PostgreSQL include:

  • Forgetting to add the PostgreSQL driver dependency, causing connection errors.
  • Incorrect database URL format; it must be jdbc:postgresql://host:port/database.
  • Not setting the correct username or password, leading to authentication failures.
  • Missing or wrong Hibernate dialect configuration, which can cause SQL errors.
  • Not opening the PostgreSQL server or firewall blocking the port.
properties
/* Wrong database URL example */
spring.datasource.url=jdbc:mysql://localhost:5432/mydb

/* Correct database URL example */
spring.datasource.url=jdbc:postgresql://localhost:5432/mydb
📊

Quick Reference

PropertyDescriptionExample
spring.datasource.urlDatabase connection URLjdbc:postgresql://localhost:5432/mydb
spring.datasource.usernameDatabase usernamepostgres
spring.datasource.passwordDatabase passwordsecret
spring.jpa.hibernate.ddl-autoSchema generation strategyupdate
spring.jpa.properties.hibernate.dialectHibernate dialect for PostgreSQLorg.hibernate.dialect.PostgreSQLDialect

Key Takeaways

Add the PostgreSQL driver dependency to your project to enable connection.
Configure the database URL, username, and password correctly in application properties.
Use Spring Data JPA or JDBC templates to interact with PostgreSQL easily.
Ensure the PostgreSQL server is running and accessible from your application.
Set the correct Hibernate dialect to avoid SQL compatibility issues.