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