从user输入username,使用java(JDBC)在mysql中删除一行


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

请注意,通过这种方式,您不必将字符串括在单引号内;数据库驱动程序将为您处理它。

检查此项以了解有关PreparedStatement的更多信息。

然而,如果你仍然想按照自己的方式来做,请按照以下方式来做:

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

甚至更好,如下所示:

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

最新更新