Я предполагаю, что вы получаете исключение
java.sql.SQLException: Invalid operation for read only resultset: deleteRow
или что-то подобное.Это было то, что я видел во время тестирования вашего кода.
Если честно, я не видел класс OracleJDBCRowSet, используемый ранее.Я не был слишком уверен, как изменить ваш код, чтобы обойти ошибку, которую вы видели.Однако не так уж сложно сделать ваш код более похожим на «традиционный» JDBC, сохранив при этом возможность изменять набор результатов в Java.Все, что вам действительно нужно сделать, это передать дополнительные два параметра в вызов метода prepareStatement
:
Connection con = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:orcl", "username", "password");
Statement stmt = con.prepareStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs = stmt.executeQuery("SELECT status FROM s");
/* this should work */
rs.last();
rs.deleteRow();
/* this should also work */
rs.absolute(2);
rs.updateInt("status", 10);
rs.updateRow();