当Query对数据库进行排序时,无法使用ResultSet删除行

时间:2014-05-09 18:43:03

标签: java derby

我正在使用Java嵌入式Derby数据库,直到此时我们才能获得工作所需的一切。

我的错误就是这样:

'deleteRow' not allowed because the ResultSet is not an updatable ResultSet.

我如何检索结果集的方法如下:

private void getResultSet(){
        try{
            stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
            rs = stmt.executeQuery("select * from guest_book order by date, name");
            rs.first();            
        }catch (SQLException ex){
            JOptionPane.showMessageDialog(this, ex.getMessage());
        }
}

编辑:我的问题更多的是我应该如何实现组织数据库的方法,因为我根据它们在JTable

中出现的顺序删除行

我要说这会被抛出,因为ResultSet Updatable仅适用于简单的SELECT语句。

2 个答案:

答案 0 :(得分:1)

考虑这样做:

  1. 获取ResultSet;
  2. 执行自定义逻辑(确定是否应删除该行);
  3. 需要删除所有条目的保存ID
  4. 使用所有这些ID执行单独的查询(或者,在最坏的情况下,为每个ID执行单独的删除查询);
  5. 您可能会发现this article有用。

答案 1 :(得分:0)

不要使用"选择* ...."命令。 使用"选择column1,column2,.."。 然后检查 我相信它不会显示任何错误

相关问题