2017-09-24 30 views
0

我有空间类型的组合框和到达和离开的两个文本框, 我想要的是什么时候到达= 2017-09-01 - 出发= 2017 -09-05已经存在,客户将无法在同类型的房间选择2017年9月2日至2017年9月5日如何在Java中迭代到达和离开日期,Mysql

String sql = "SELECT * FROM reservation WHERE room=? and arrival=? and 
departure=?"; 

try{ 
     pst=conn.prepareStatement(sql); 
     pst.setString(1, ComboBox.getSelectedItem().toString()); 
     pst.setString(2, txtArrival.getText()); 
     pst.setString(3, txtDeparture.getText()); 
     rs=pst.executeQuery(); 
if(rs.next()){ 
// the customer needs to choose other date or room 
} 
else{ 
// continue to fill up the form below 
} 
} 

enter image description here

+0

_“它不会接受它”_。请更具体地说明您的问题或您想要做的事情。 –

+0

我更新了它,对不起 – Francis

+0

你的意思是说,你有一个房间,而且这个房间可以预订,数据库存储开始/结束。那么如果其他人要预订这个房间,并输入开始/结束,那么你想搜索房间是否可用? – forqzy

回答

0

存放在你的日期值日期数据类型的列,而不是文本。

使用适当的对象而不是单纯的字符串。

LocalDate arrival = LocalDate.parse("2017-09-01") ; 

将该对象传递给您的PreparedStatement

myPreparedStatement.setObject(2 , arrival) ; 

而且对于ResultSet

LocalDate arrival = myResultSet.getObject(2 , LocalDate.class) ; 

修复SQL查询的逻辑。你不应该在寻找确切的日期匹配。

所有这些已经在Stack Overflow上多次讨论过了。发布前彻底搜索。