Я довольно новичок в Java и создаю базовую систему бронирования туров.У меня есть экскурсионный класс, который выглядит следующим образом.
public class TourModel {
private int tourID;
private String tourname;
private String tourlocation;
private String country;
private String groupsize;
private String tourprice;
private String tourduration;
private String tourdescription;
private int availableSeats;
private Date tourDate;
private String tourBanner;
private ArrayList<ReservationModel> reservations;
Класс резервирования выглядит как
import java.util.ArrayList;
import java.util.Date;
public class ReservationModel {
private int reservationID;
private int tourID;
private int userID;
private String reservationstatus;
private int reservationpaymentstatus;
private int numberofattendees;
private Date reservationcreationdate;
private ReservationAttendees attendees;
Теперь, чтобы получить все резервирования на основе идентификатора пользователя, у меня есть метод вмой класс DOA, который получает мне все бронирования на основе поля ID пользователя.тем не менее, как я могу также получить всю информацию о туре, для которого предназначено бронирование?
Должен ли я создать другое поле в модели резервирования, используя тип TourModel?Разве это не противоречит отношениям "ИМЕЕТ" (технически у резервации нет тура. Это наоборот.
Может быть, я слишком обдумываю это, но я хотел попросить разъяснений, посколькуЯ не знаком с шаблонами объектно-ориентированного проектирования.
public ArrayList<ReservationModel> getReservationByTourID(int tourID) {
ArrayList<ReservationModel> reservations = new ArrayList<ReservationModel>();
try {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/ArtofTravel", "root",
"2001Space");
String query = "select * from reservations where tour_ID = ?;";
PreparedStatement stmt = con.prepareStatement(query);
stmt.setInt(1, tourID);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
reservations.add(new ReservationModel(rs.getInt("ID"), rs.getInt("tour_ID"),rs.getInt("user_ID"),rs.getString("reservation_Status"),rs.getInt("reservation_payment_status"),rs.getInt("number_of_attendees"), rs.getDate("reservation_create_date")));
}
stmt.close();
rs.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
return reservations;
}