如何在Java,Mysql中迭代到达和离开日期

时间:2017-09-24 14:04:35

标签: java mysql jdbc

我有用于房间类型的组合框和用于到达和离开的2个文本框, 我想要的是当抵达= 2017-09-01 - 出发= 2017-09-05已经存在,客户将无法在同一类型的房间中选择2017-09-02至2017-09-05 < / p>

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

1 个答案:

答案 0 :(得分:0)

将日期值存储在日期数据类型的列中,而不是文本中。

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

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

将该对象传递给PreparedStatement

myPreparedStatement.setObject( 2 , arrival ) ;

对于ResultSet

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

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

Stack Overflow已经多次覆盖了所有这些。发布前彻底搜索。