为了账号安全,请及时绑定邮箱和手机立即绑定

您的 SQL 语法有错误,请检查手册 JAVA

您的 SQL 语法有错误,请检查手册 JAVA

胡子哥哥 2022-05-25 16:23:52
我在尝试运行此代码时遇到此错误您的 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


查看完整回答
反对 回复 2022-05-25
?
人到中年有点甜

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一些关于为什么你应该在这种情况下使用的额外阅读。


查看完整回答
反对 回复 2022-05-25
  • 2 回答
  • 0 关注
  • 126 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信