пользователю не хватает прав или объект не найден: XXXX - PullRequest
0 голосов
/ 23 февраля 2019

У меня появляется эта ошибка, когда я пытаюсь поместить данные в базу данных, это моя функция регистрации

void signup() throws SQLException {

          String name=signupForm.getSignUpName().getText();
           String password=new String(signupForm.getSignUpPassword().getPassword());


          System.out.println(name);
          System.out.println(password);
        conn= getConnection();
        statement = conn.createStatement();
        query = "INSERT INTO student_signup(student_password) VALUES"+"("+password+")";
          System.out.println(name);

                     rs=statement.executeQuery(query);



            statement.close();
            conn.close();

}

Например, если я введу qweqweqwe в качестве пароля, то ошибка будет выглядеть так, как будто пользователь не имеет привилегии илиобъект не найден: qweqweqwe

имя таблицы, а также имя поля точно такие же, как в запросе, поэтому проблем нет

полная ошибка:

Исключение внить "AWT-EventQueue-0"

1 Ответ

0 голосов
/ 23 февраля 2019

Строки в SQL должны быть ограничены одинарными кавычками, поэтому вы должны обновить свой запрос следующим образом:

query = "INSERT INTO student_signup(student_password) VALUES"+"('"+password+"')";

На самом деле, создание запроса путем объединения строк - очень плохая идея, потому что ваш код может бытьсклонны к инъекциям SQL.Лучший способ сделать то же самое - использовать подготовленное утверждение:

PreparedStatement statement = conn.prepareStatement("INSERT INTO student_signup(student_password) VALUES(?)");
statement.setString(1, password);
statement.execute();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...