From 45be56851e2e7f3ce31dbce3cf7389da6f0980a8 Mon Sep 17 00:00:00 2001 From: Parmis Jamami Date: Thu, 25 Jun 2026 17:52:18 +0330 Subject: [PATCH] Complete Order and OrderDao --- src/main/java/dev/dao/OrderDao.java | 57 ++++++++++++++++++++++++++--- src/main/java/dev/model/Order.java | 31 ++++++++++++++++ 2 files changed, 82 insertions(+), 6 deletions(-) diff --git a/src/main/java/dev/dao/OrderDao.java b/src/main/java/dev/dao/OrderDao.java index 00999a2..5514ce4 100644 --- a/src/main/java/dev/dao/OrderDao.java +++ b/src/main/java/dev/dao/OrderDao.java @@ -1,25 +1,70 @@ package dev.dao; +import dev.database.DatabaseConnection; import dev.model.Order; +import java.sql.*; +import java.util.ArrayList; import java.util.List; public class OrderDao { public int save(Order order) { - // TODO: - // Insert order and return generated id + String sql = "INSERT INTO orders (user_id, total_price) VALUES (?, ?) RETURNING id"; + + try ( + Connection connection = DatabaseConnection.getConnection(); + PreparedStatement statement = connection.prepareStatement(sql) + ) { + + statement.setInt(1, order.getUserId()); + statement.setDouble(2, order.getTotalPrice()); + + ResultSet resultSet = statement.executeQuery(); + + if (resultSet.next()) { + return resultSet.getInt("id"); + } + + } catch (SQLException e) { + System.out.println("Error saving order: " + e.getMessage()); + } return -1; } public List findByUserId(int userId) { - // TODO: - // Retrieve all orders of a user + String sql = "SELECT id, user_id, created_at, total_price FROM orders WHERE user_id = ?"; - return null; + List orders = new ArrayList<>(); + + try ( + Connection connection = DatabaseConnection.getConnection(); + PreparedStatement statement = connection.prepareStatement(sql) + ) { + + statement.setInt(1, userId); + + ResultSet resultSet = statement.executeQuery(); + + while (resultSet.next()) { + + Order order = new Order(); + + order.setId(resultSet.getInt("id")); + order.setUserId(resultSet.getInt("user_id")); + order.setCreatedAt(resultSet.getTimestamp("created_at").toLocalDateTime()); + order.setTotalPrice(resultSet.getDouble("total_price")); + + orders.add(order); + } + + } catch (SQLException e) { + System.out.println("Error loading orders: " + e.getMessage()); + } + + return orders; } - } \ No newline at end of file diff --git a/src/main/java/dev/model/Order.java b/src/main/java/dev/model/Order.java index 32049cb..8cbc53f 100644 --- a/src/main/java/dev/model/Order.java +++ b/src/main/java/dev/model/Order.java @@ -12,4 +12,35 @@ public class Order { private double totalPrice; + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public LocalDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(LocalDateTime createdAt) { + this.createdAt = createdAt; + } + + public double getTotalPrice() { + return totalPrice; + } + + public void setTotalPrice(double totalPrice) { + this.totalPrice = totalPrice; + } } \ No newline at end of file