输入用户的用户名,并使用它删除 mysql 中的一行,使用 java(JDBC)

Input username from user and use it to delete a row in mysql using java(JDBC)

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();

这里我想用 user_name 代替 haridinesh00。但是由于 user_name 是 String 类型,所以该值用双引号引起来。 Sql 只允许单引号。

按如下操作:

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));