【问题标题】:delete more than 1 records using single prepared statement使用单个准备好的语句删除超过 1 条记录
【发布时间】:2013-09-30 16:02:42
【问题描述】:

我正在执行两条准备好的语句来删除两条不同 id 的记录。我想在一个准备好的语句执行中删除两条记录 我的代码是这样的

String sqlDelete,sqlSelect2;
  sqlDelete = "delete from vul_detail where scanno=? and id=?";//
            PreparedStatement ps2=conn.prepareStatement(sqlDelete);
//  System.out.println("PS Created Successfully");
  ps2.setString(1, "scan_2");
  ps2.setInt(2, 2);
 // ps2.setInt(3, 5);
  ps2.executeUpdate();
  System.out.println("first record deleted");
  ps2.setString(1, "scan_2");
  ps2.setInt(2, 5);
  ps2.executeUpdate();
  System.out.println("second record deleted");
     sqlSelect2="select * from vul_detail;"; 
           stmt=conn.createStatement();
System.out.println("select query created");
ResultSet rs2 = stmt.executeQuery(sqlSelect2);

我尝试查询为

sqlDelete = "delete from vul_detail where scanno=? and id=?,?";
PreparedStatement ps2=conn.prepareStatement(sqlDelete);
System.out.println("PS Created Successfully");
 ps2.setString(1, "scan_2");
 ps2.setInt(2, 2);
 ps2.setInt(3, 5);
 ps2.executeUpdate();

我在这方面遇到了异常,请帮助

【问题讨论】:

  • 你已经得到了一个可以解决这个问题的答案(因为它很明显)。但请记住在以后的问题中包含例外情况,而不是只说“我遇到了例外情况”。

标签: java mysql prepared-statement


【解决方案1】:

“IN”条件的语法是:

expression in (value1, value2, .... value_n);

在你的例子中:

sqlDelete = "delete from vul_detail where scanno = ? and id in (?, ?)";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多