猿问

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

我在尝试运行此代码时遇到此错误您的 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;

    }


胡子哥哥
浏览 127回答 2
2回答

互换的青春

您正在生成下一个查询:SELECT * FROM library_students.student WHERE StudentID='10'And Permission=1'And StatusMembership='Active'错误可能是由于额外的单引号 ' inPermission=1'And

人到中年有点甜

这可能是由于查询中的间距而发生的。尝试以下格式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一些关于为什么你应该在这种情况下使用的额外阅读。
随时随地看视频慕课网APP

相关分类

Java
我要回答