We're now going to talk about JdbcRowSet. It's an enhanced ResultSet object. It provides us a different syntax for connecting to a database. It basically does everything a ResultSet object does. It has a variety of methods to configure it with various properties. In order to create such an object, we first all need to create a RowSet factory, and we that get that from a RowSet provider. Note the import statements Javax.sql.rowset. Once I have that factory, I can create the JdbcRowSet. I can set properties like I did before, such as the URL, username, password. And I can set the SQL using the set command method. We now have a reusable object, a JdbcRowSet that we could potentially use again, and again, and note the SQL is in that object. So now we have a JdbcRowSet, we can now use that, and execute it. With the execute method, remember it has a SQL command in it. We then position ourselves before so for the first row in the ResultSet. We then move to the first row, remember next returns Boolean, there is no first row, then we're done. We don't execute the while loop, that much as we did before, we extrapolate out the data from each row in the ResultSet. And here I've used column dates, and date, I'm just printing it out. So very similar to ResultSet. A default ResultSet objects that is not scrollable can use only the next method to move forward. The cursor moves forward from the first row to the last row. A default JdbcRowSet object is scrollable, and can move forwards or backwards. The JdbcRowSet to call the method next, and it can also call any other results that cursor movement methods that we've discussed before. For example the following lines, that you see here are executing the SQL associated with the JdbcResultSet, moving specifically to the second row in the result, and ResultSet. And then we're moving backwards. Previous method, as we saw before, is basically similar to the next method. In a while loop, if you repeatedly execute it, you're basically going backwards. So you're moving cursor to position normally after the last row, and then executing previous again, and again to move backwards towards the beginning. In this snippet of code, we can see we're executing the JdbcResultsSet. We're moving to the second row, we're updating that row. We have to execute update row to make the update, Persistent, so this is a sensitive, Scrollable cursor, then moving back to the first row, we're deleting that row, and indeed, that's going to be persisted. And then finally, we're closing everything out. So a different approach that we've done before.