Class RowSetTableContentProvider

java.lang.Object
com.webmethods.caf.faces.bean.PageFlowScopeAdapter
com.webmethods.caf.faces.data.sql.RowSetTableContentProvider
All Implemented Interfaces:
IPageFlowScopeAdapter, IAddressableTableContentProvider, IContentProvider, IRefreshable, IRefreshableContentProvider, ISelectableTableContentProvider, ISortableTableContentProvider, ITableContentProvider, ITransactionalContentProvider, IUpdateableContentProvider, IUpdateableTableContentProvider, 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:

 
 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: