【发布时间】:2019-06-21 12:31:19
【问题描述】:
我在尝试运行此代码时遇到此错误 你有一个错误 你的 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;
}
【问题讨论】:
-
'我认为你需要先删除那个'那里。或者你在 1 之前需要一个
-
该错误告诉您 SQL 代码中存在错误,而不是在生成您的 SQL 代码的 Java 代码中。首先查看错误发生时
"SELECT * FROM library_students.student WHERE StudentID='"+ borrowedBook.getLenderTo()+"'And Permission=1"+"'And StatusMembership='Active'"的运行时值。 -
为了防止更多此类错误和SQL注入,建议你使用prepared statements
-
你应该了解prepared statements
-
查询中没有空格?