Java 当查询对数据库排序时,无法使用结果集删除行

Java 当查询对数据库排序时,无法使用结果集删除行,java,derby,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_IN

我使用的是一个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
updateable只对简单的
SELECT
语句有效。

考虑这样做:

  • 获取您的
    结果集
  • 执行自定义逻辑(决定是否删除该行的逻辑)
  • 需要删除所有条目的保存ID
  • 对所有这些ID执行单独的查询(或者,在最坏的情况下,对每个ID执行单独的删除查询) 您可能会发现这很有用。

    不要使用“选择*…”命令。 使用“选择第1列、第2列、…”。 然后检查 我相信它不会显示任何错误