尝试运行此代码时出现此错误 您有一个错误 您的SQL语法;检查与您的MySQL服务器版本相对应的手册 在第1行的“ And StatusMembership = Active”附近使用正确的语法
public boolean checkLenderToIfExists(BorrowedBook borrowedBook) throws SQLException {
try {
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM library_students.student WHERE StudentID='"+ borrowedBook.getLenderTo()+"'And Permission=1"+"'And StatusMembership='Active'");
if (!(rs.next())) {
return false;
}
rs.close();
return true;
} catch (SQLException ex) {
ex.printStackTrace();
return false;
}
答案 0 :(得分:4)
您正在生成下一个查询:
SELECT * FROM library_students.student WHERE StudentID='10'And
Permission=1'And StatusMembership='Active'
错误可能是由于Permission=1'And
答案 1 :(得分:2)
这可能是由于查询中的间隔而发生的。使用PreparedStatement
尝试以下格式:
PreparedStatement preparedStatement = conn.prepareStatement("SELECT * FROM "
+ "library_students.student WHERE StudentID= ? "
+ "AND Permission=1 AND StatusMembership='Active'");
preparedStatement.setInt(1, borrowedBook.getLenderTo());
ResultSet rs = preparedStatement.executeQuery();
此外,here's还提供了一些有关为何在这种情况下使用PreparedStatement
的奖励。