![](/img/trans.png)
[英]for loop issue when cycling through images for Jlabel with button click
[英]Issue With Cycling Through Entries In Database
我正在嘗試使用Java瀏覽Access數據庫,以檢查日期范圍是否落在另一個日期范圍之間,以避免重復的保留。 我遇到一個SQL錯誤,提示“ ResultSet已關閉”。 我相信這是因為我正在使用兩個resultSet以便使用一個while循環檢查兩個不同的日期。 這是代碼:
String date1Query = "SELECT checkIn FROM Reservation WHERE roomLocation LIKE '" + room + "'";
String date2Query = "SELECT checkOut FROM Reservation WHERE roomLocation LIKE '" + room + "'";
ResultSet date1RS = statement.executeQuery(date1Query);
ResultSet date2RS = statement.executeQuery(date2Query);
while (date1RS.next()) {
date1 = date1RS.getDate("checkIn");
date2 = date2RS.getDate("checkOut");
dateCheckBool = dateCheck.dateCheck(date1, date2, checkIn, checkOut);
if (dateCheckBool == true)
break;
}
我還可以如何格式化它以實現相同的功能(能夠根據數據庫中已經存在的日期由用戶檢查輸入日期)卻沒有收到錯誤? 如果這還不夠清楚,我會嘗試做什么,我將嘗試根據要求進一步澄清。 謝謝!
編輯:根據要求這里是dateCheck代碼:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class dateCheck {
public boolean dateCheck(Date date1, Date date2, String date3, String
date4){
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
Date dateCheck1;
Date dateCheck2;
boolean dateRange1 = false;
boolean dateRange2 = false;
try {
dateCheck1 = dateFormat.parse(date3);
dateCheck2 = dateFormat.parse(date4);
if(dateCheck1.before(date1) || dateCheck1.after(date2))
dateRange1 = false;
else
dateRange1 = true;
if(dateCheck2.after(date2))
dateRange2 = false;
else
dateRange2 = true;
} catch (ParseException e) {
e.printStackTrace();
}
if(dateRange1 == false && dateRange2 == false)
return false;
else
return true;
}
}
為什么僅在SQL可以給您結果時就擺弄?
如果您想知道預訂是否已經到位,只需詢問數據庫。
SELECT id as result From reservations
Where (
([RoomLocation] like ?)
And (
(? between [checkin] and [checkout])
OR (? between [checkin] and [checkout])
)
);
在您的Java中:
statement.setString(1,room);
statement.setDate(2,date1);
statement.setDate(3,date2);
..執行..
如果有任何預訂,您將收到預訂ID。 如果不為null。 您還可以在另一個選擇命令中的SQL上方放置並返回true或false值。 如果您遇到日期格式不兼容的問題,則可能必須格式化日期並將其作為字符串傳遞。
附:從移動電話接聽,請仔細檢查SQL中是否有錯字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.