java.sql.SQLSyntaxErrorException。找不到错误

时间:2018-10-24 08:42:13

标签: java mysql

我目前正在收到此错误:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROMusersWHERElogin='Pac1man' ANDpassword='220v'' at line 1

我需要做什么来解决它?

这是我的查询:

public void SignUpUser(User user){
        String insert = "INSERT INTO " + Const.USER_TABLE + "(" + Const.USER_NAME + ","
                + Const.USER_SECONDNAME + "," + Const.USER_LOGIN + "," + Const.USER_PASSWORD + ")"
                + "VALUES(?,?,?,?)";
        try {

            PreparedStatement prSt = getDbConnection().prepareStatement(insert);
            prSt.setString(1, user.getName());
            prSt.setString(2, user.getSecondName());
            prSt.setString(3, user.getUserName());
            prSt.setString(4, user.getPasswordName());

            prSt.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public ResultSet getUser(User user){
        ResultSet resSet = null;

        String select = "SELECT * FROM" + Const.USER_TABLE + "WHERE" +
                Const.USER_LOGIN + "=? AND" + Const.USER_PASSWORD + "=?";

        try {
            PreparedStatement prSt = getDbConnection().prepareStatement(select);
            prSt.setString(1, user.getUserName());
            prSt.setString(2, user.getPasswordName());

            resSet = prSt.executeQuery();
        }   catch (SQLException e) {
            e.printStackTrace();
        }   catch (ClassNotFoundException e){
            e.printStackTrace();
    }
    return resSet;
}}

有积分吗?

2 个答案:

答案 0 :(得分:1)

select变量中有一个错误(缺少空格)。 试试这个:

String select = "SELECT * FROM " + Const.USER_TABLE + " WHERE " +
                Const.USER_LOGIN + "=? AND " + Const.USER_PASSWORD + "=?";

答案 1 :(得分:0)

您的查询无效,因为您错过了添加空格的机会。

String select = "SELECT * FROM " + Const.USER_TABLE + " WHERE " +
                Const.USER_LOGIN + "=? AND " + Const.USER_PASSWORD + "=?";

使用上面的代码,您的查询字符串变为

 SELECT * FROM users WHERE login='Pac1man' AND password='220v'