Complete Order and OrderDao

This commit is contained in:
2026-06-25 17:52:18 +03:30
parent 3a205532fb
commit 45be56851e
2 changed files with 82 additions and 6 deletions
+51 -6
View File
@@ -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<Order> 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<Order> 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;
}
}
+31
View File
@@ -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;
}
}