-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEventDAO.java
More file actions
153 lines (110 loc) · 4.87 KB
/
EventDAO.java
File metadata and controls
153 lines (110 loc) · 4.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class EventDAO {
public boolean addEvent(Event event) {
String checkSql = "SELECT COUNT(*) FROM events WHERE venue_id = ? AND event_date = ? AND event_time = ?";
String insertSql = "INSERT INTO events (event_name, event_type, event_date, event_time, venue_id, user_id, delete_requested) " +
"VALUES (?, ?, ?, ?, ?, ?, false)";
try (Connection con = DBConnection.getConnection();
PreparedStatement checkPs = con.prepareStatement(checkSql)) {
checkPs.setInt(1, event.getVenueId());
checkPs.setDate(2, Date.valueOf(event.getEventDate()));
checkPs.setTime(3, Time.valueOf(event.getEventTime()));
ResultSet rs = checkPs.executeQuery();
if (rs.next() && rs.getInt(1) > 0) {
System.out.println("Error: This venue is already booked at the selected date and time.");
return false;
}
try (PreparedStatement insertPs = con.prepareStatement(insertSql)) {
insertPs.setString(1, event.getEventName());
insertPs.setString(2, event.getEventType());
insertPs.setDate(3, Date.valueOf(event.getEventDate()));
insertPs.setTime(4, Time.valueOf(event.getEventTime()));
insertPs.setInt(5, event.getVenueId());
insertPs.setInt(6, event.getUserId());
return insertPs.executeUpdate() > 0;
}
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public List<Event> getEventsByUserId(int userId) {
List<Event> events = new ArrayList<>();
String sql = "SELECT * FROM events WHERE user_id = ?";
try (Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement(sql)) {
ps.setInt(1, userId);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
events.add(mapResultSetToEvent(rs));
}
} catch (SQLException e) {
e.printStackTrace();
}
return events;
}
public List<Event> getAllEvents() {
List<Event> events = new ArrayList<>();
String sql = "SELECT * FROM events";
try (Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
events.add(mapResultSetToEvent(rs));
}
} catch (SQLException e) {
e.printStackTrace();
}
return events;
}
public boolean requestEventDeletion(int eventId) {
String sql = "UPDATE events SET delete_requested = true WHERE event_id = ?";
try (Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement(sql)) {
ps.setInt(1, eventId);
return ps.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public List<Event> getEventsRequestedForDeletion() {
List<Event> events = new ArrayList<>();
String sql = "SELECT * FROM events WHERE delete_requested = true";
try (Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement(sql);
ResultSet rs = ps.executeQuery()) {
while (rs.next()) {
events.add(mapResultSetToEvent(rs));
}
} catch (SQLException e) {
e.printStackTrace();
}
return events;
}
public boolean deleteEvent(int eventId) {
String sql = "DELETE FROM events WHERE event_id = ?";
try (Connection con = DBConnection.getConnection();
PreparedStatement ps = con.prepareStatement(sql)) {
ps.setInt(1, eventId);
return ps.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
private Event mapResultSetToEvent(ResultSet rs) throws SQLException {
Event event = new Event();
event.setEventId(rs.getInt("event_id"));
event.setEventName(rs.getString("event_name"));
event.setEventType(rs.getString("event_type"));
event.setEventDate(rs.getDate("event_date").toString());
event.setEventTime(rs.getTime("event_time").toString());
event.setVenueId(rs.getInt("venue_id"));
event.setUserId(rs.getInt("user_id"));
event.setDeleteRequested(rs.getBoolean("delete_requested"));
return event;
}
}