Java 如何在SQL中使用变量删除表中的行
如何在SQL表中使用java变量删除行 我试图使用用户输入的内容(变量Java 如何在SQL中使用变量删除表中的行,java,sql,sqlite,jdbc,Java,Sql,Sqlite,Jdbc,如何在SQL表中使用java变量删除行 我试图使用用户输入的内容(变量newName和newYear)从表member(有两列,name和newYear)中删除一条记录。我想找到与用户输入的记录相同的行(name=newName&&year=newYear),然后将其删除。但是,此代码不会更改表中的任何内容(尽管我输入的内容是正确的,但不会删除任何行)。我的代码怎么了 是下面代码中使用的变量 try { s = c.createStatement(); t
newName
和newYear
)从表member
(有两列,name
和newYear
)中删除一条记录。我想找到与用户输入的记录相同的行(name=newName&&year=newYear)
,然后将其删除。但是,此代码不会更改表中的任何内容(尽管我输入的内容是正确的,但不会删除任何行)。我的代码怎么了
是下面代码中使用的变量
try {
s = c.createStatement();
t = "DELETE FROM member " +
"WHERE (name='" + newName + "'&& year='" + newYear + "')";
s.executeUpdate(t);
s.close();
c.commit();
c.close();
} catch (SQLException ex) {
Logger.getLogger(AddMember.class.getName()).log(Level.SEVERE, null, ex);
}
JOptionPane.showMessageDialog(null, "Saved.");
memName.setText(null);
memYear.setText(null);
我希望从表中删除包含用户输入信息的行,但它没有对我的表进行任何更改。您遇到的问题是,在SQL中,您不能使用
&&
而使用和,如下代码所示:
t = "DELETE FROM member " +
"WHERE (name='" + newName + "' AND year='" + newYear + "')";
不要像那样构建SQL语句,您对SQL注入是完全开放的。改用参数化查询。
t = "DELETE FROM member " +
"WHERE (name='" + newName + "' AND year='" + newYear + "')";