Tutorialspoint

1 Answer
Rishi Raj

When we execute certain SQL queries (SELECT query in general) they return tabular data.

The java.sql.ResultSet interface represents such tabular data returned by the SQL statements.

i.e. the ResultSet object holds the tabular data returned by the methods that execute the statements which quires the database (executeQuery() method of the Statement interface in general).

The ResultSet object has a cursor/pointer which points to the current row. Initially this cursor is positioned before first row.

The relative() method of the ResultSet interface moves the ResultSet pointer/cursor n number of rows from the current position.

This method returns an integer value representing the current row number to which the ResultSet pointer points to.

Let us create a table with name MyPlayers in MySQL database using CREATE statement as shown below: 

CREATE TABLE MyPlayers(
   ID INT,
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Date_Of_Birth date,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255),
   PRIMARY KEY (ID)
);

Now, we will insert 7 records in MyPlayers table using INSERT statements:

insert into MyPlayers values(1, 'Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India');
insert into MyPlayers values(2, 'Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica');
insert into MyPlayers values(3, 'Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka');
insert into MyPlayers values(4, 'Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India');
insert into MyPlayers values(5, 'Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India');
insert into MyPlayers values(6, 'Ravindra', 'Jadeja', DATE('1988-12-06'), 'Nagpur', 'India');
insert into MyPlayers values(7, 'James', 'Anderson', DATE('1982-06-30'), 'Burnley', 'England');

Following JDBC program establishes connection with the database, retrieves the contents of the table MyPlayers into a ResultSet object, retrieves the current position of the cursor moves it in forward and backward directions relatively.

Example

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ResultSet_relative {
   public static void main(String args[]) throws SQLException {
      //Registering the Driver
      DriverManager.registerDriver(new com.mysql.jdbc.Driver());
      //Getting the connection
      String mysqlUrl = "jdbc:mysql://localhost/mydatabase";
      Connection con = DriverManager.getConnection(mysqlUrl, "root", "password");
      System.out.println("Connection established......");
      //Creating the Statement
      Statement stmt = con.createStatement();
      //Query to retrieve records
      String query = "Select * from MyPlayers";
      //Executing the query
      ResultSet rs = stmt.executeQuery(query);
      //Moving the cursor to 3rd position
      rs.absolute(3);
      System.out.println("Position of the pointer: "+rs.getRow());
      //Moving the pointer 2 positions forward from the current
      System.out.println("Position of the pointer after moving it to 2 places forward relatively: "+rs.relative(2));
      //Moving the pointer 3 positions backwards from the current
      System.out.println("Position of the pointer after moving it to 3 places backward relatively: "+rs.relative(-3));
   }
}

Output

Connection established......
Position of the pointer: 3
Position of the pointer after moving it to 2 places forward relatively: true
Position of the pointer after moving it to 3 places backward relatively: true

Advertisements

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.