use*_*379 8 java sql database sql-delete
您好我试图从我的数据库中删除一行.我没有错,但它什么也没做,任何帮助或建议都会很棒!
public static void DeleteRow(String name)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement st = connection.prepareStatement("DELETE FROM Table WHERE name = " + name + ";");
st.executeUpdate();
}
catch(Exception e)
{
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
Spr*_*ner 18
我猜名称是DB中的varchar类型,所以这样做
PreparedStatement st = connection.prepareStatement("DELETE FROM Table WHERE name = '" + name + "';");
Run Code Online (Sandbox Code Playgroud)
将名称括在单引号内 '
这也不是你使用的方式不是使用Preparedstatement的正确方法
我们通过以下方式
PreparedStatement st = connection.prepareStatement("DELETE FROM Table WHERE name = ?");
st.setString(1,name);
st.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
Proper PreparedStatement之后的完整代码
public static void DeleteRow(String name)
{
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement st = connection.prepareStatement("DELETE FROM Table WHERE name = ?");
st.setString(1,name);
st.executeUpdate();
}
catch(Exception e)
{
System.out.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)