Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SQL中使用变量删除表中的行_Java_Sql_Sqlite_Jdbc - Fatal编程技术网

Java 如何在SQL中使用变量删除表中的行

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

如何在SQL表中使用java变量删除行

我试图使用用户输入的内容(变量
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 + "')";