【发布时间】:2018-08-31 10:45:00
【问题描述】:
早上好,我正在创建的 Web 应用程序有问题。 Premtto 我对这种编程很陌生。 所以我的网络应用程序应该负责预订酒店房间。我的问题是当有人试图预订房间时进行检查,这样您就不能在同一时期预订两个相等的房间。 只有写了代码的情况下才不会执行检查,房间仍然被预订。我怎么能按照你说的呢?非常感谢您的帮助。
try {
Class.forName("com.mysql.cj.jdbc.Driver");
// out.println("driver loaded");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/Hotel?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC", "root", "123456789");
out.println("Connect");
Statement st = con.createStatement();
Statement stmt = con.createStatement();
out.println("connection successfull");
String check = ("SELECT res1.id_prenotazione, res1.typeroom, res1.arrivaldate, res1.departuredate\n" +
"FROM reservation res1, reservation res2\n" +
"WHERE ( res1.typeroom = res2.typeroom ) \n" +
"AND res1.id_prenotazione != res2.id_prenotazione\n" +
"AND (res1.arrivaldate <= res2.departuredate)\n" +
"AND (res2.arrivaldate <= res1.departuredate)");
// ResultSet rs2 = stmt.executeQuery(check);
out.println("<h1> Stringa chek eseguita </h1>");
if (check) { // THIS DOESN't WORK OF COURSE
int rs = st.executeUpdate("insert into reservation (login,email,typeroom,numroom,arrivaldate,departuredate)values ('" + login + "','" + email + "','" + typeroom + "','" + numroom + "','" + arrivaldate + "','" + departuredate + "')");
}
String getResultSet = ("SELECT count(*) FROM reservation WHERE arrivaldate ='" + arrivaldate + "'");
String rs1 = ("SELECT count(*) FROM reservation WHERE arrivaldate");
if (getResultSet != rs1) {
int i = st.executeUpdate("DELETE FROM reservation WHERE id_prenotazione ='" + id_prenotazione + "'");
}
表reservation (
id_prenotazione int(11) NOT NULL AUTO_INCREMENT,login varchar(45) NOT NULL,email varchar(45) NOT NULL,typeroom varchar(45) NOT NULL, numroom int(11) 非空,arrivaldate 日期时间非空,departuredate 日期时间非空,
主键 (id_prenotazione)
TABLE users (login varchar(45) NOT NULL,firstname varchar(45) NOT NULL,lastname varchar(45) NOT NULL,password varchar(45) 非空,
主键 (login)
【问题讨论】:
-
if(check)不起作用...但check是String?你不想要boolean吗? -
@achAmháin 我也尝试过 boolean : Boolean check = (.....) != NULL 然后 IF (check) {... } 但它是一样的
-
您是否尝试使用检查变量执行查询??
-
您已经在 out.println() 语句之前注释掉了执行查询,这就是为什么 check 可能会返回 false
-
@ProgrammingNewb 是的,我试过了