Overview  Package   Class  Tree  Deprecated  Index  Help 
 PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: 
java.lang.Object
  extended by com.webmethods.caf.faces.bean.PageFlowScopeAdapter
      extended by com.webmethods.caf.faces.data.sql.RowSetTableContentProvider
All Implemented Interfaces:
IPageFlowScopeAdapter, IAddressableTableContentProvider, IContentProvider, IRefreshable, IRefreshableContentProvider, ISelectableTableContentProvider, ISortableTableContentProvider, ITableContentProvider, ITransactionalContentProvider, IUpdateableContentProvider, IUpdateableTableContentProvider, Serializable

public class RowSetTableContentProvider
extends PageFlowScopeAdapter
implements IUpdateableTableContentProvider, ISortableTableContentProvider, ISelectableTableContentProvider, IRefreshableContentProvider, ITransactionalContentProvider, Serializable

JDBC CachedRowSet table content provider implementation. Allows to access a JDBC datasource and execute SQL queries againt it. Supports auto-refresh, transactional writebacks, row selection and row sorting. Needs an configured CachedRowSet instance to wrap. The CachedRowSet object must have the following properties set:

  • RowSet.setDataSourceName(java.lang.String)
  • RowSet.setCommand(java.lang.String)
  • CachedRowSet.setTableName(java.lang.String) for writebacks only

 
 CachedRowSetImpl rowSet = new CachedRowSetImpl();
 rowSet.setDataSourceName("northwind");
 rowSet.setCommand("SELECT * FROM CUSTOMERS WHERE Country = ?");
 rowSet.setTableName("CUSTOMERS");
 
 ITableContentProvider provider = new RowSetTableContentProvider(rowSet);
 provider.getParameters().set(0, "USA"); // country value
 
 // execute the query and read the data
 for (int i = 0; i < provider.getRowCount(); i++) {
        provider.setRowIndex(i);
        if (provider.isRowAvailable()) {
                String customerID = (String) provider.getValue("CustomerID");
                String companyName = (String) provider.getValue("CompanyName");
        }
 }
 ;
 
 // find a customer by id
 provider.setRowById("ANTON"); // Customer ID
 if (provider.isRowAvailable()) {
        provider.setValue("ContactName", "Jonh Doe");
 }
 
 provider.setRowById("ALFKI"); // another customer
 if (provider.isRowAvailable()) {
        provider.setValue("Country", "USA");
 }
 
 provider.setRowById("TODELETE");
 if (provider.isRowAvailable()) {
        provider.deleteRow(); // delete row
 }
 
 provider.applyChanges(); // commit changes
 
 // change query parameters
 provider.getParameters().set(0, "Ukraine"); // new country value
 if (provider.getRowCount() > 0) { // auto-refresh the provider by re-executing
                                                                        // the query and returing new record count
        // no customers from Ukraine, ha?
 }
 
 

See Also:
Serialized Form

Field Detail

rowSet

protected CachedRowSet rowSet
Wrapped instance of CachedRowSet


autoRefreshMode

protected boolean autoRefreshMode
Indicates if provider is in "autoRefresh" mode


needRefresh

protected boolean needRefresh
Indicates if provider needs to be refreshed

Constructor Detail

RowSetTableContentProvider

public RowSetTableContentProvider()
Default constructor. RowSetTableContentProvider.setRowSet(CachedRowSet) must be called before use


RowSetTableContentProvider

public RowSetTableContentProvider(CachedRowSet rowSet)
Initializes with the given rowSet object.

Parameters:
rowSet - a cached row set instance

Overview  Package   Class  Tree  Deprecated  Index  Help 
 PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: