我有两个数据库表,在我的程序中单击一个按钮,我想删除所有两个表的数据。但是 table 上总是剩下一个数据。这是我的代码:
public void mouseClicked(MouseEvent arg0) {
int confirm = JOptionPane.showConfirmDialog(null, "Are you sure you want to delete the log? ", "Log", JOptionPane.YES_NO_OPTION );
if (confirm == JOptionPane.YES_OPTION){
try{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
con = DriverManager.getConnection("jdbc:odbc:RIM");
Statement st1 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
Statement st2 = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
String sql1 = "select * from userLogIn";
ResultSet rs1 = st1.executeQuery(sql1);
String sql2 = "select * from userViewed";
ResultSet rs2 = st2.executeQuery(sql2);
while(rs1.next()){
rs1.deleteRow();
rs1.first();
}
while(rs2.next()){
rs2.deleteRow();
rs2.first();
}
editorPane.setText("");
}catch(Exception e){e.printStackTrace();}
当只剩下一个元素时,您对 first()
的调用将光标设置到该元素,但是随后 while 条件中的 next()
调用将返回 false,导致退出循环,因此 deleteRow
将不会被执行。
使用rs.beforeFirst()
`.
请注意,您的代码有很多问题,因此请将此答案仅作为“用于教育目的”。
我是一名优秀的程序员,十分优秀!