diff --git a/src/main/java/dev/dao/MenuItemDao.java b/src/main/java/dev/dao/MenuItemDao.java index 3bbebe9..95b2d44 100644 --- a/src/main/java/dev/dao/MenuItemDao.java +++ b/src/main/java/dev/dao/MenuItemDao.java @@ -1,23 +1,60 @@ package dev.dao; +import dev.database.DatabaseConnection; import dev.model.MenuItem; +import java.sql.*; +import java.util.ArrayList; import java.util.List; public class MenuItemDao { public List findAll() { + List items = new ArrayList<>(); + String sql = "select * FROM menu_item"; - // TODO: - // Retrieve all menu items + try (Connection connection = DatabaseConnection.getConnection(); + Statement statement = connection.createStatement(); + ResultSet resultSet = statement.executeQuery(sql) + ) { + while (resultSet.next()) { + MenuItem item = new MenuItem( + resultSet.getInt("id"), + resultSet.getString("name"), + resultSet.getString("description"), + resultSet.getDouble("price"), + resultSet.getString("category") + ); + items.add(item); + } + } catch (SQLException e) { + System.err.println("Error fetching menu items: " + e.getMessage()); + } - return null; + return items; } public MenuItem findById(int id) { + String sql = "SELECT * FROM menu_items WHERE id = ?"; - // TODO: - // Find menu item by id + try (Connection conn = DatabaseConnection.getConnection(); + PreparedStatement pstmt = conn.prepareStatement(sql)) { + + pstmt.setInt(1, id); + try (ResultSet rs = pstmt.executeQuery()) { + if (rs.next()) { + return new MenuItem( + rs.getInt("id"), + rs.getString("name"), + rs.getString("description"), + rs.getDouble("price"), + rs.getString("category") + ); + } + } + } catch (SQLException e) { + System.err.println("Error finding menu item: " + e.getMessage()); + } return null; } diff --git a/src/main/java/dev/database/DatabaseConnection.java b/src/main/java/dev/database/DatabaseConnection.java index da45535..3a95ed0 100644 --- a/src/main/java/dev/database/DatabaseConnection.java +++ b/src/main/java/dev/database/DatabaseConnection.java @@ -1,6 +1,7 @@ package dev.database; import java.sql.Connection; +import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { @@ -17,11 +18,7 @@ public class DatabaseConnection { public static Connection getConnection() throws SQLException { - - // TODO: - // Return a valid PostgreSQL connection - - return null; + return DriverManager.getConnection(URL, USER, PASSWORD); } } \ No newline at end of file diff --git a/src/main/java/dev/model/MenuItem.java b/src/main/java/dev/model/MenuItem.java index 265ecc1..5749207 100644 --- a/src/main/java/dev/model/MenuItem.java +++ b/src/main/java/dev/model/MenuItem.java @@ -12,4 +12,11 @@ public class MenuItem { private String category; + public MenuItem(int id, String name, String description, double price, String category) { + this.id = id; + this.name = name; + this.description = description; + this.price = price; + this.category = category; + } } \ No newline at end of file