diff --git a/src/main/java/com/example/livecodingjavaspring/User.java b/src/main/java/com/example/livecodingjavaspring/User.java
index 630fccd9b011b0b96cb907de562f436a41694883..cc9fa8b0a57f391389d089d41a8ff83cb97829f3 100644
--- a/src/main/java/com/example/livecodingjavaspring/User.java
+++ b/src/main/java/com/example/livecodingjavaspring/User.java
@@ -3,9 +3,12 @@ package com.example.livecodingjavaspring;
 import lombok.Builder;
 import lombok.Data;
 
+import java.util.Random;
+
 @Data
 @Builder
 public class User {
+    private final int id = new Random().nextInt(1000);
     private String firstName;
     private String lastName;
     private Integer age;
diff --git a/src/main/java/com/example/livecodingjavaspring/UserDao.java b/src/main/java/com/example/livecodingjavaspring/UserDao.java
index 599d882d45a73894d231cdb2499a82e7174ef515..8c085e71e6f921af03bbc4543bf3991d1a6b8da6 100644
--- a/src/main/java/com/example/livecodingjavaspring/UserDao.java
+++ b/src/main/java/com/example/livecodingjavaspring/UserDao.java
@@ -9,6 +9,8 @@ import java.util.List;
 @Service
 public class UserDao {
     private static final String FETCH_ALL_USERS_QUERY = "SELECT * FROM users";
+    private static final String ADD_USER_QUERY = "INSERT INTO users (id, first_name, last_name, age) VALUES (?, ?, ?, ?)";
+
 
     public List<User> getUsers() {
         List<User> users = new ArrayList<>();
@@ -30,8 +32,17 @@ public class UserDao {
 
     }
 
-    public List<User> addUser(List<User> users, User user) {
-        users.add(user);
-        return users;
+    public int addUser(User user) {
+        try (Connection connection = DriverManager.getConnection("jdbc:postgresql://localhost/db-name", "user", "pwd");
+             PreparedStatement preparedStatement = connection.prepareStatement(ADD_USER_QUERY)) {
+            preparedStatement.setInt(1, user.getId());
+            preparedStatement.setString(2, user.getFirstName());
+            preparedStatement.setString(3, user.getLastName());
+            preparedStatement.setInt(4, user.getAge());
+            return preparedStatement.executeUpdate();
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+
     }
 }
diff --git a/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java b/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
index 5476ebd4383e1adedd549a1915dfa8f85a9708f4..e528c9f7958360173e5aca551751cb5e9cdf92ca 100644
--- a/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
+++ b/src/main/java/com/example/livecodingjavaspring/UserLibraryController.java
@@ -22,8 +22,8 @@ public class UserLibraryController {
 
     @PostMapping("")
     public List<User> addUser(@RequestBody User user) {
-        List<User> users= userDao.getUsers();
-        return userDao.addUser(users, user);
+        userDao.addUser(user);
+        return userDao.getUsers();
     }
 
 }