When you call a stored procedure in a RDMS, you don't always get back a sequence of records in the same layout and structure as when you just do a simple SQL select style query.
An SQL query would return a series of records separated by newline characters. A stored procedure might return a mixed collection of records of different types.
A ResultSet object is created by asking the Stproc object for it when the stored procedure has been called and returned from the database.
The traversing mechanisms provided with a result set allow you to move forwards through the data but you cannot move backwards. Also, you can only read values from a result set as opposed to a cursor which allows you to update it and write new values back.