1

我一直在研究以下代码:

import java.sql.*;


public class deleteRowDemo
{
    public static void main(String args[])
    {
       Connection con;
       Statement stmt;
       ResultSet rs;
       PreparedStatement ps;
       try    
       {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            con=DriverManager.getConnection("jdbc:odbc:Project");
            stmt=con.createStatement(ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_UPDATABLE);
            rs=stmt.executeQuery("select Mword, from Model,Stud where Mword=Sword");
            while(rs.next())
            {
                 ps=con.prepareStatement("insert into Compare (Cword) values (?)");
                 ps.setString(1,rs.getString(1));
                 ps.executeUpdate();  
                 rs.deleteRow();
            }
            con.close();   
       } catch(Exception e)
       {
          System.out.println(e);  
       }
   }
}

有两个表模型和螺柱。正在比较这两个表,并将两个表中相似的所有单词插入另一个名为 Compare 的表中,同时我希望从 Stud 和 Model 表中删除这些单词。当 select 语句只有一个 table 时,函数 deleteRow() 可以正常工作,但是对于具有多个 table 的复杂 select 语句如何解决。

4

1 回答 1

0

您应该使用 DELETE 语句删除该行。具体应该如何完成取决于您的数据模型。

而不是 rs.deleteRow(); 在 while 循环中,您可以例如执行以下操作:

PreparedStatement deleteModel  = con.prepareStatement("DELETE Model WHERE Mword = ?"); // You might need to modify this query if Mword is not unique in Model.
deleteModel.setString(1, rs.getString(1));
deleteModel.executeUpdate();
//Do the same for Stud.
于 2013-05-05T17:36:25.607 回答