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)
