From 17ae2dfeaf620c91b781168e68f35cad48c3a193 Mon Sep 17 00:00:00 2001 From: Fateme Azizi Date: Sat, 27 Jun 2026 00:40:27 +0330 Subject: [PATCH] implement Order.java --- src/main/java/dev/dao/OrderDao.java | 48 +++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/main/java/dev/dao/OrderDao.java b/src/main/java/dev/dao/OrderDao.java index 00999a2..b7365b2 100644 --- a/src/main/java/dev/dao/OrderDao.java +++ b/src/main/java/dev/dao/OrderDao.java @@ -1,25 +1,67 @@ package dev.dao; +import dev.database.DatabaseConnection; import dev.model.Order; +import java.sql.*; +import java.time.LocalDateTime; +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, created_at) VALUES(?, ?, ?) RETURNING id"; + + try (Connection connection = DatabaseConnection.getConnection(); + PreparedStatement preparedStatement = connection.prepareStatement(sql)){ + + preparedStatement.setInt(1, order.getUserId()); + preparedStatement.setDouble(2, order.getTotalPrice()); + preparedStatement.setTimestamp(3, Timestamp.valueOf(LocalDateTime.now())); + + ResultSet resultSet = preparedStatement.executeQuery(); + + if(resultSet.next()) return resultSet.getInt("id"); + + } catch (SQLException e) { + throw new RuntimeException(e); + } return -1; } public List findByUserId(int userId) { - // TODO: // Retrieve all orders of a user + String sql = "SELECT * FROM orders WHERE user_id=?"; + List orders = new ArrayList<>(); - return null; + try(Connection connection = DatabaseConnection.getConnection(); + PreparedStatement preparedStatement = connection.prepareStatement(sql) ) { + + preparedStatement.setInt(1, userId); + + ResultSet resultSet = preparedStatement.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) { + throw new RuntimeException(e); + } + return orders; } } \ No newline at end of file