【问题标题】:How to delete all rows in database on one click如何一键删除数据库中的所有行
【发布时间】:2014-04-12 11:54:18
【问题描述】:

我有一个两个数据库表,在我的程序中单击一个按钮,我想删除所有两个表的数据。但是桌子上总是剩下一个数据。这是我的代码:

 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();}

【问题讨论】:

    标签: java mysql resultset


    【解决方案1】:

    当只剩下一个元素时,您对 first() 的调用会将光标设置为该元素,但随后在 while 条件中的 next() 调用将返回 false,从而导致退出循环,从而导致 @987654324 @ 不会被执行。

    使用rs.beforeFirst()`。

    请注意,您的代码有很多问题,因此请将此答案视为“仅用于教育目的”。

    【讨论】:

      【解决方案2】:

      您为什么要遍历 select 记录集?效率非常低。

      如果你想从这些表中删除所有数据,你可以简单地执行语句:

      delete from userLogin;
      delete from userViewed;
      

      (或使用truncate)。

      【讨论】:

        猜你喜欢
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多