diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000000000000000000000000000000000000..803ae8db626a771c77e82b594643690af29d57a8
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,11 @@
+version: '3.1'
+services:
+  database:
+    container_name: api_database
+    image: postgres
+    environment:
+      POSTGRES_USER : user
+      POSTGRES_PASSWORD: pwd
+      POSTGRES_DB: db-name
+    ports:
+      - "5432:5432"
diff --git a/initdb/1_TABLES.sql b/initdb/1_TABLES.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3440d84da14a74169ed6ad07dcb063022c27b483
--- /dev/null
+++ b/initdb/1_TABLES.sql
@@ -0,0 +1,7 @@
+create table users
+(
+    id         SERIAL PRIMARY KEY,
+    first_name TEXT not null,
+    last_name  TEXT not null,
+    age  int null
+)
diff --git a/initdb/2_DEFAULT_ENTRIES.sql b/initdb/2_DEFAULT_ENTRIES.sql
new file mode 100644
index 0000000000000000000000000000000000000000..5f637dd7d1326969fa5186f66fb0e1a1852f5cdb
--- /dev/null
+++ b/initdb/2_DEFAULT_ENTRIES.sql
@@ -0,0 +1,8 @@
+INSERT INTO users (id, first_name, last_name, age) VALUES (1, 'Laurine', 'LE NET', 22);
+INSERT INTO users (id, first_name, last_name, age) VALUES (2, 'Pilou', 'BERTRAND', 24);
+INSERT INTO users (id, first_name, last_name, age) VALUES (3, 'Alain', 'CONNU', 26);
+INSERT INTO users (id, first_name, last_name, age) VALUES (4, 'Aurélie', 'BIENCEQUETAECRIT', 20);
+INSERT INTO users (id, first_name, last_name, age) VALUES (5, 'Barack', 'AFFRITTE', 22);
+INSERT INTO users (id, first_name, last_name, age) VALUES (6, 'Camille', 'ONETTE', 23);
+INSERT INTO users (id, first_name, last_name, age) VALUES (7, 'Jean', 'TENRIEN', 22);
+INSERT INTO users (id, first_name, last_name, age) VALUES (8, 'Lara', 'TATOUILLE', 24);
diff --git a/pom.xml b/pom.xml
index 4c162b08496b50915f49398f96ea375178f63d2b..878037cce8f7116e18e1b930f4ee78b1715bc96d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -36,6 +36,12 @@
 		    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
 		    <version>2.1.0</version>
 		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
+		<dependency>
+		    <groupId>org.postgresql</groupId>
+		    <artifactId>postgresql</artifactId>
+		    <version>42.6.0</version>
+		</dependency>
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/example/livecodingjavaspring/User.java b/src/main/java/com/example/livecodingjavaspring/User.java
index 6d101f406f8ea64131b1c5860be07d96a9f12127..630fccd9b011b0b96cb907de562f436a41694883 100644
--- a/src/main/java/com/example/livecodingjavaspring/User.java
+++ b/src/main/java/com/example/livecodingjavaspring/User.java
@@ -1,8 +1,10 @@
 package com.example.livecodingjavaspring;
 
+import lombok.Builder;
 import lombok.Data;
 
 @Data
+@Builder
 public class User {
     private String firstName;
     private String lastName;
diff --git a/src/main/java/com/example/livecodingjavaspring/UserDao.java b/src/main/java/com/example/livecodingjavaspring/UserDao.java
index dbc6edcc3083f7530d1f1b1bd38a0224ee37ccf7..599d882d45a73894d231cdb2499a82e7174ef515 100644
--- a/src/main/java/com/example/livecodingjavaspring/UserDao.java
+++ b/src/main/java/com/example/livecodingjavaspring/UserDao.java
@@ -2,22 +2,32 @@ package com.example.livecodingjavaspring;
 
 import org.springframework.stereotype.Service;
 
+import java.sql.*;
 import java.util.ArrayList;
 import java.util.List;
+
 @Service
 public class UserDao {
+    private static final String FETCH_ALL_USERS_QUERY = "SELECT * FROM users";
 
     public List<User> getUsers() {
         List<User> users = new ArrayList<>();
-        users.add(new User("Laurine", "LE NET", 22));
-        users.add(new User("Pilou", "BERTRAND", 24));
-        users.add(new User("Alain", "CONNU", 26));
-        users.add(new User("Aurélie", "BIENCEQUETAECRIT", 20));
-        users.add(new User("Barack", "AFFRITTE", 22));
-        users.add(new User("Camille", "ONETTE", 23));
-        users.add(new User("Jean", "TENRIEN", 22));
-        users.add(new User("Lara", "TATOUILLE", 24));
+        try (Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/db-name", "user", "pwd");
+             PreparedStatement preparedStatement = connection.prepareStatement(FETCH_ALL_USERS_QUERY)) {
+            ResultSet resultSet = preparedStatement.executeQuery();
+            while (resultSet.next()) {
+                User user = User.builder()
+                        .firstName(resultSet.getString("first_name"))
+                        .lastName(resultSet.getString("last_name"))
+                        .age(resultSet.getInt("age"))
+                        .build();
+                users.add(user);
+            }
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
         return users;
+
     }
 
     public List<User> addUser(List<User> users, User user) {