WebRowSet

WebRowSet is a disconnected RowSet implementation that extends the functionality of CachedRowSet. It can represent RowSet data as XML, making it useful for transferring database data between different applications or systems.

Key Features

  • Extends CachedRowSet.
  • Supports disconnected operation.
  • Can read and write RowSet data as XML.
  • Useful for data exchange between applications.
  • Can preserve information about changes made to the RowSet.

Program Using WebRowSet

WebRowSet is a disconnected RowSet implementation that can represent RowSet data in XML format. It is useful when database data needs to be exchanged between different applications or systems.

import javax.sql.rowset.WebRowSet;
import javax.sql.rowset.RowSetProvider;
import java.sql.SQLException;
import java.io.IOException;

public class WebRowSetExample {

    public static void main(String[] args) {

        try {
            // Create WebRowSet
            WebRowSet rowSet =
                    RowSetProvider.newFactory()
                                  .createWebRowSet();

            // Set database properties
            rowSet.setUrl(
                    "jdbc:mysql://localhost:3306/jdbc_demo");

            rowSet.setUsername("root");
            rowSet.setPassword("password");

            // Set SQL query
            rowSet.setCommand(
                    "SELECT employee_id, employee_name, " +
                    "department, salary FROM employee");

            // Execute query
            rowSet.execute();

            System.out.println(
                    "Employee Data in XML Format");
            System.out.println(
                    "================================");

            // Write RowSet data as XML
            rowSet.writeXml(System.out);

            // Close RowSet
            rowSet.close();

        } catch (SQLException e) {
            System.out.println(
                    "Database Error: " + e.getMessage());

        } catch (IOException e) {
            System.out.println(
                    "XML Output Error: " + e.getMessage());
        }
    }
}
Execution and Output:

PS D:\test> javac -classpath ".;D:\test\mysql-connector.jar" WebRowSetExample.java
PS D:\test> java -classpath ".;D:\test\mysql-connector.jar" WebRowSetExample
Employee Data in XML Format
================================
<?xml version="1.0"?>
<webRowSet xmlns="http://java.sun.com/xml/ns/jdbc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/jdbc http://java.sun.com/xml/ns/jdbc/webrowset.xsd">
  <properties>
    <command>SELECT employee_id, employee_name, department, salary FROM employee</command>
    <concurrency>1008</concurrency>
    <datasource><null/></datasource>
    <escape-processing>true</escape-processing>
    <fetch-direction>1000</fetch-direction>
    <fetch-size>0</fetch-size>
    <isolation-level>2</isolation-level>
    <key-columns>
    </key-columns>
    <map>
    </map>
    <max-field-size>0</max-field-size>
    <max-rows>0</max-rows>
    <query-timeout>0</query-timeout>
    <read-only>true</read-only>
    <rowset-type>ResultSet.TYPE_SCROLL_INSENSITIVE</rowset-type>
    <show-deleted>false</show-deleted>
    <table-name>employee</table-name>
    <url>jdbc:mysql://localhost:3306/jdbc_demo</url>
    <sync-provider>
      <sync-provider-name>com.sun.rowset.providers.RIOptimisticProvider</sync-provider-name>
      <sync-provider-vendor>Oracle Corporation</sync-provider-vendor>
      <sync-provider-version>1.0</sync-provider-version>
      <sync-provider-grade>2</sync-provider-grade>
      <data-source-lock>1</data-source-lock>
    </sync-provider>
  </properties>
  <metadata>
    <column-count>4</column-count>
    <column-definition>
      <column-index>1</column-index>
      <auto-increment>false</auto-increment>
      <case-sensitive>false</case-sensitive>
      <currency>false</currency>
      <nullable>0</nullable>
      <signed>true</signed>
      <searchable>true</searchable>
      <column-display-size>10</column-display-size>
      <column-label>employee_id</column-label>
      <column-name>employee_id</column-name>
      <schema-name></schema-name>
      <column-precision>10</column-precision>
      <column-scale>0</column-scale>
      <table-name>employee</table-name>
      <catalog-name>jdbc_demo</catalog-name>
      <column-type>4</column-type>
      <column-type-name>INT</column-type-name>
    </column-definition>
    <column-definition>
      <column-index>2</column-index>
      <auto-increment>false</auto-increment>
      <case-sensitive>false</case-sensitive>
      <currency>false</currency>
      <nullable>1</nullable>
      <signed>false</signed>
      <searchable>true</searchable>
      <column-display-size>50</column-display-size>
      <column-label>employee_name</column-label>
      <column-name>employee_name</column-name>
      <schema-name></schema-name>
      <column-precision>50</column-precision>
      <column-scale>0</column-scale>
      <table-name>employee</table-name>
      <catalog-name>jdbc_demo</catalog-name>
      <column-type>12</column-type>
      <column-type-name>VARCHAR</column-type-name>
    </column-definition>
    <column-definition>
      <column-index>3</column-index>
      <auto-increment>false</auto-increment>
      <case-sensitive>false</case-sensitive>
      <currency>false</currency>
      <nullable>1</nullable>
      <signed>false</signed>
      <searchable>true</searchable>
      <column-display-size>30</column-display-size>
      <column-label>department</column-label>
      <column-name>department</column-name>
      <schema-name></schema-name>
      <column-precision>30</column-precision>
      <column-scale>0</column-scale>
      <table-name>employee</table-name>
      <catalog-name>jdbc_demo</catalog-name>
      <column-type>12</column-type>
      <column-type-name>VARCHAR</column-type-name>
    </column-definition>
    <column-definition>
      <column-index>4</column-index>
      <auto-increment>false</auto-increment>
      <case-sensitive>true</case-sensitive>
      <currency>false</currency>
      <nullable>1</nullable>
      <signed>true</signed>
      <searchable>true</searchable>
      <column-display-size>10</column-display-size>
      <column-label>salary</column-label>
      <column-name>salary</column-name>
      <schema-name></schema-name>
      <column-precision>10</column-precision>
      <column-scale>2</column-scale>
      <table-name>employee</table-name>
      <catalog-name>jdbc_demo</catalog-name>
      <column-type>3</column-type>
      <column-type-name>DECIMAL</column-type-name>
    </column-definition>
  </metadata>
  <data>
    <currentRow>
      <columnValue>101</columnValue>
      <columnValue>Ravi</columnValue>
      <columnValue>Development</columnValue>
      <columnValue>78500.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>102</columnValue>
      <columnValue>Priya</columnValue>
      <columnValue>Operations</columnValue>
      <columnValue>71500.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>106</columnValue>
      <columnValue>Chakrapani</columnValue>
      <columnValue>Finance</columnValue>
      <columnValue>204000.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>107</columnValue>
      <columnValue>Suresh</columnValue>
      <columnValue>IT</columnValue>
      <columnValue>46500.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>108</columnValue>
      <columnValue>Anita</columnValue>
      <columnValue>HR</columnValue>
      <columnValue>48500.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>109</columnValue>
      <columnValue>Kiran</columnValue>
      <columnValue>Finance</columnValue>
      <columnValue>52000.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>110</columnValue>
      <columnValue>Sai</columnValue>
      <columnValue>IT</columnValue>
      <columnValue>45000.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>111</columnValue>
      <columnValue>Akhila</columnValue>
      <columnValue>HR</columnValue>
      <columnValue>47000.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>112</columnValue>
      <columnValue>Raghu</columnValue>
      <columnValue>Finance</columnValue>
      <columnValue>52000.00</columnValue>
    </currentRow>
    <currentRow>
      <columnValue>119</columnValue>
      <columnValue>Deepak</columnValue>
      <columnValue>Support</columnValue>
      <columnValue>36000.00</columnValue>
    </currentRow>
  </data>
</webRowSet>Code language: HTML, XML (xml)
Scroll to Top