Я учусь на проекте о создании простого веб-приложения.
Я создаю веб-приложение об отеле, и у меня проблема с бронированием номера.
У меня есть 3 вида комнат, и я хочу, чтобы когда кто-то бронировал комнату, другой не мог забронировать ту же комнату за тот же период.
Проблема в таком контроле.
Я написал этот код:
КОД ОБНОВЛЕНИЯ ПОСЛЕ ОТВЕТА
Statement st = con.createStatement();
Statement stmt = con.createStatement();
out.println("connection successfull");
int total = 0;
ResultSet rs3 = stmt.executeQuery( "SELECT COUNT(*) as total FROM reservation WHERE idRoom = '" + idRoom +
"' AND ('" + arrivaldate + "' >= arrivaldate AND '" + arrivaldate + "' <= departuredate) OR ('" + departuredate + "' >= arrivaldate "
+ "AND '" + departuredate + "' <= departuredate)");
rs3.next(); // You'll ever have only one row
total = rs3.getInt("total");
/* String query = "SELECT COUNT(*) FROM reservation WHERE idRoom = '" + idRoom +
"' AND ('" + arrivaldate + "' >= arrivaldate AND '" + arrivaldate + "' <= departuredate) OR ('" + departuredate + "' >= arrivaldate "
+ "AND '" + departuredate + "' <= departuredate)" ;
*/
// ResultSet rs2 = stmt.executeQuery(check);
out.println("<h1> Stringa check eseguito </h1>");
if( total > 0) { // THIS DOESN't WORK OF COURSE
response.sendRedirect("home.jsp");
}
else {
st.executeUpdate("insert into reservation (login,email,typeroom,idRoom,arrivaldate,departuredate)values ('"+login+"','"+email+"','"+typeroom+"','"+idRoom+"','"+arrivaldate+"','"+departuredate+"')");
}
Но это не работает должным образом, потому что позволяет мне бронировать одну и ту же комнату с теми же данными.
Как я могу сделать по вашему мнению? Спасибо за Ваше внимание.