Java Spring Boot with PostgreSQL: Database Integration

sametklou

Java Spring Boot with PostgreSQL: Database Integration

Overview

In this tutorial, we will learn how to integrate PostgreSQL with a Java Spring Boot application. We will cover setting up a PostgreSQL database, configuring our Spring Boot application to connect to the database, and performing basic CRUD operations using Spring Data JPA.

Prerequisites

  • Basic understanding of Java and Spring Boot
  • PostgreSQL installed on your machine
  • Maven or Gradle for managing dependencies

Setting up PostgreSQL Database

  1. Create a new database in PostgreSQL:
CREATE DATABASE demo_db;
  1. Create a table in the database:
CREATE TABLE user (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50),
    email VARCHAR(50)
);

Configuring Spring Boot Application

  1. Add PostgreSQL dependency to your pom.xml:
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.23</version>
</dependency>
  1. Configure application.properties with database connection details:
spring.datasource.url=jdbc:postgresql://localhost:5432/demo_db
spring.datasource.username=postgres
spring.datasource.password=admin
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.ddl-auto=update

Creating Entity and Repository

  1. Create a User entity class:
@Entity
@Table(name = "user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    private String email;
    
    // Getters and setters
}
  1. Create a UserRepository interface:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

Performing CRUD Operations

  1. Inject UserRepository in your service or controller class:
@Autowired
private UserRepository userRepository;
  1. Perform CRUD operations using UserRepository methods:
// Save a user
User user = new User();
user.setName("John Doe");
user.setEmail("[email protected]");
userRepository.save(user);

// Find a user by id
Optional<User> optionalUser = userRepository.findById(1L);

// Update user details
optionalUser.ifPresent(u -> {
    u.setName("Jane Doe");
    userRepository.save(u);
});

// Delete a user
userRepository.deleteById(1L);

Conclusion

In this tutorial, we have successfully integrated PostgreSQL with a Java Spring Boot application. We have covered setting up the database, configuring the application, creating entities and repositories, and performing basic CRUD operations. Experiment with the provided code examples and customize them according to your requirements. Happy coding!