¿Qué es RowSet en Java JDBC?

RowSet es una interfaz en java que está presente en el paquete java.sql. Geek tenga en cuenta que no debe confundir RowSet con ResultSet. 

Nota: RowSet está presente en el paquete javax.sql mientras que ResultSet está presente en el paquete java.sql.   

La instancia de RowSet es el componente del bean java porque tiene propiedades y un mecanismo de notificación del bean java. Se introduce en JDK5. Un JDBC RowSet proporciona una forma de almacenar los datos en formato tabular. Hace que los datos sean más flexibles y fáciles que un ResultSet. La conexión entre el objeto RowSet y la fuente de datos se mantiene a lo largo de su ciclo de vida.

Los RowSets se clasifican en cinco categorías en función de cómo se implementan, que se enumeran a continuación:

  • JdbcRowSet
  • CachedRowSet
  • WebRowSet
  • FilteredRowSet
  • JoinRowSet

La ventaja de RowSet es la siguiente:

  1. Es fácil y flexible de usar.
  2. Es desplazable de forma predeterminada y se puede actualizar de forma predeterminada, mientras que ResultSet de forma predeterminada solo se puede reenviar y la operación de solo lectura es válida solo allí.

La interfaz JDBC RowSet es una extensión de RowSet. Es un contenedor para el objeto ResultSet que agrega algunas funciones adicionales.

Sintaxis: declaración de la interfaz Jdbc RowSet

public interface JdbcRowSet
extends RowSet, Joinable

Para conectar RowSet con la base de datos, la interfaz de RowSet proporciona métodos para configurar las propiedades del bean Java que se muestran a continuación:

void setURL(String url):
void setUserName(String user_name):
void setPassword(String password):

Por último, solo necesitamos crear un objeto JdbcRowSet donde se muestra un ejemplo debajo de la ilustración de la siguiente manera:

Ilustración:

JdbcRowSetrowSet = RowSetProvider.newFactory().createJdbcRowSet();

// 1. Oracle database considered 
rowSet.setUrl("jdbc:oracle:thin:@localhost:1521:xe");

// 2. username is set customly as - root 
rowSet.setUsername("root");

// 3. Password is set customly as - pass
rowSet.setPassword("pass");

// 4. Query 
rowSet.setCommand("select * from Students");

Implementación: supongamos que tenemos una tabla llamada estudiante en la base de datos como:

+--------------+-------------+
|  RollNo |   Name   | Marks |
+--------------+-------------+
|    1    |   jack   |    92     |
|    2    |   jenny  |    90     | 
|    3    |   mark   |    80     |
|    4    |   joe    |    82     |
+--------------+-------------+

Implementando JdbcRowSet y recuperando los registros

Java

// Java Program to Illustrate RowSet in JDBC
 
// Importing database
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.sql.RowSetEvent;
import javax.sql.RowSetListener;
import javax.sql.rowset.JdbcRowSet;
import javax.sql.rowset.RowSetProvider;
 
// Main class
class RowSetDemo {
 
    // Main driver method
    public static void main(String args[])
    {
 
        // Try block to check for exceptions
        try {
 
            // Loading and registering drivers
            Class.forName(
                "oracle.jdbc.driver.OracleDriver");
 
            // Creating a RowSet
            JdbcRowSetrowSet = RowSetProvider.newFactory()
                                   .createJdbcRowSet();
 
            // Setting URL, username, password
            rowSet.setUrl(
                "jdbc:oracle:thin:@localhost:1521:xe");
            rowSet.setUsername("root");
            rowSet.setPassword("pass");
 
            // Creating a query
            rowSet.setCommand("select * from Student");
 
            // Executing the query
            rowSet.execute();
 
            // Processign the results
            while (rowSet.next()) {
 
                // Print and display commands
                System.out.println("RollNo: "
                                   + rowSet.getInt(1));
                System.out.println("Name: "
                                   + rowSet.getString(2));
                System.out.println("Marks: "
                                   + rowSet.getString(3));
            }
        }
 
        // Catch block to handle the exceptions
        catch (Exception e) {
 
            // Print and display the exception along with
            // line number using printStackTrace() method
            e.printStackTrace();
        }
    }
}

Producción:

RollNo: 1
Name: jack 
Marks: 92
RollNo: 2
Name: jenny  
Marks: 90
RollNo: 3
Name: mark
Marks: 80
RollNo: 4
Name: joe
Marks: 82

Publicación traducida automáticamente

Artículo escrito por sanketnagare y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *