/*
* @(#)RowSet.java 1.19 06/07/10
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.sql;
import java.sql.*;
import java.io.*;
import java.math.*;
import java.util.*;
/**
* The interface that adds support to the JDBC API for the
* JavaBeans<sup><font size=-2>TM</font></sup> component model.
* A rowset, which can be used as a JavaBeans component in
* a visual Bean development environment, can be created and
* configured at design time and executed at run time.
* <P>
* The <code>RowSet</code>
* interface provides a set of JavaBeans properties that allow a <code>RowSet</code>
* instance to be configured to connect to a JDBC data source and read
* some data from the data source. A group of setter methods (<code>setInt</code>,
* <code>setBytes</code>, <code>setString</code>, and so on)
* provide a way to pass input parameters to a rowset's command property.
* This command is the SQL query the rowset uses when it gets its data from
* a relational database, which is generally the case.
* <P>
* The <code>RowSet</code>
* interface supports JavaBeans events, allowing other components in an
* application to be notified when an event occurs on a rowset,
* such as a change in its value.
*
* <P>The <code>RowSet</code> interface is unique in that it is intended to be
* implemented using the rest of the JDBC API. In other words, a
* <code>RowSet</code> implementation is a layer of software that executes "on top"
* of a JDBC driver. Implementations of the <code>RowSet</code> interface can
* be provided by anyone, including JDBC driver vendors who want to
* provide a <code>RowSet</code> implementation as part of their JDBC products.
* <P>
* A <code>RowSet</code> object may make a connection with a data source and
* maintain that connection throughout its life cycle, in which case it is
* called a <i>connected</i> rowset. A rowset may also make a connection with
* a data source, get data from it, and then close the connection. Such a rowset
* is called a <i>disconnected</i> rowset. A disconnected rowset may make
* changes to its data while it is disconnected and then send the changes back
* to the original source of the data, but it must reestablish a connection to do so.
* <P>
* A disconnected rowset may have a reader (a <code>RowSetReader</code> object)
* and a writer (a <code>RowSetWriter</code> object) associated with it.
* The reader may be implemented in many different ways to populate a rowset
* with data, including getting data from a non-relational data source. The
* writer can also be implemented in many different ways to propagate changes
* made to the rowset's data back to the underlying data source.
* <P>
* Rowsets are easy to use. The <code>RowSet</code> interface extends the standard
* <code>java.sql.ResultSet</code> interface. The <code>RowSetMetaData</code>
* interface extends the <code>java.sql.ResultSetMetaData</code> interface.
* Thus, developers familiar
* with the JDBC API will have to learn a minimal number of new APIs to
* use rowsets. In addition, third-party software tools that work with
* JDBC <code>ResultSet</code> objects will also easily be made to work with rowsets.
*
* @since 1.4
*/
public interface RowSet extends ResultSet {
//-----------------------------------------------------------------------
// Properties
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// The following properties may be used to create a Connection.
//-----------------------------------------------------------------------
/**
* Retrieves the url property this <code>RowSet</code> object will use to
* create a connection if it uses the <code>DriverManager</code>
* instead of a <code>DataSource</code> object to establish the connection.
* The default value is <code>null</code>.
*
* @return a string url
* @exception SQLException if a database access error occurs
* @see #setUrl
*/
String getUrl() throws SQLException;
/**
* Sets the URL this <code>RowSet</code> object will use when it uses the
* <code>DriverManager</code> to create a connection.
*
* Setting this property is optional. If a URL is used, a JDBC driver
* that accepts the URL must be loaded before the
* rowset is used to connect to a database. The rowset will use the URL
* internally to create a database connection when reading or writing
* data. Either a URL or a data source name is used to create a
* connection, whichever was set to non null value most recently.
=1= |