我一直在研究以下代码:
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语句只有一个表时,函数deleteRow()可以正常工作,但是如何处理具有多个表的复杂select语句。
答案 0 :(得分: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.