我在尝试运行此代码时遇到此错误您的 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; }
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
您正在生成下一个查询:
SELECT * FROM library_students.student WHERE StudentID='10'And
Permission=1'And StatusMembership='Active'
错误可能是由于额外的单引号 ' inPermission=1'And
人到中年有点甜
TA贡献1895条经验 获得超7个赞
这可能是由于查询中的间距而发生的。尝试以下格式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();
此外,这里有PreparedStatement一些关于为什么你应该在这种情况下使用的额外阅读。
添加回答
举报
0/150
提交
取消