Java mySql WHERE和WHERE错误

时间:2018-01-13 16:21:12

标签: java mysql sql jdbc

请帮助我,请注意此代码中的错误是什么?

sql = "SELECT * FROM work_book WHERE mikor >= " + startTime + "AND mikor <= " + endTime;
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);

错误消息:

  

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本,用于在&mcor&lt; =附近使用正确的语法   1518303600000&#39;在第1行

感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

我将您的问题视为拼写错误,原因是您错过了startTimeAND运营商之间的空格:

" + startTime + "AND mikor <= "
//---------------^

但重要的事情:

Date应该在两个引号'startTime'之间,您的代码旁边可能是语法错误或SQL注入的受害者,因此请使用PreparedStatement

sql = "SELECT * FROM work_book WHERE mikor >= ? AND mikor <= ?";
try (PreparedStatement pst = con.prepareStatement(sql);) {
    pst.setDate(1, startTime);
    pst.setDate(2, endTime);
    ...
}