Введите имя пользователя от пользователя и используйте его для удаления строки в mysql, используя java (JDB C) - PullRequest
0 голосов
/ 20 марта 2020
System.out.println("Enter name of site or app");
app_name= sc.nextLine();
System.out.println("Enter username of account to remove");
user_name= sc.nextLine();
pstmt = conn.prepareStatement("delete from "+app_name+" where USERNAME='haridinesh00'");
pstmt.executeUpdate();

Здесь вместо haridinesh00 я хочу заменить его на user_name. Но поскольку user_name имеет тип String, значение заключено в двойные кавычки. Sql допускает только одинарные кавычки.

1 Ответ

0 голосов
/ 20 марта 2020

Сделайте это следующим образом:

String sql = "DELETE FROM "+app_name+" WHERE USERNAME = ?";
PreparedStatement pstmt = conn.prepareStatement(sql)) 
pstmt.setString(1, user_name);
pstmt.executeUpdate();

Обратите внимание, что таким образом вам не нужно заключать вашу строку в одинарную кавычку; драйвер базы данных позаботится об этом за вас.

Проверьте this , чтобы узнать больше о PreparedStatement.

Однако, если вы все еще хотите сделать это в своем Кстати, сделайте это следующим образом:

conn.prepareStatement("DELETE FROM "+app_name+" WHERE USERNAME = '" + user_name + "'");

или, что еще лучше, следующим образом:

conn.prepareStatement("DELETE FROM "+app_name+" WHERE USERNAME = " + pstmt.enquoteLiteral(user_name));
...