输入用户的用户名,并使用它删除 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));
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));