com.workingdogs.village
Class TableDataSet

java.lang.Object
  extended by com.workingdogs.village.DataSet
      extended by com.workingdogs.village.TableDataSet

public class TableDataSet
extends DataSet

This class is used for doing select/insert/delete/update on the database. A TableDataSet cannot be used to join multiple tables for an update, if you need join functionality on a select, you should use a QueryDataSet.

Here is an example usage for this code that gets the first 10 records where column "a" = 1:

  KeyDef kd = new KeyDef().setAttrib("column");
  TableDataSet tds = new TableDataSet(connection, "table_name", kd );
  tds.where ("a=1" ); // WHERE a = 1
  tds.fetchRecords(10); // fetch first 10 records where column a=1
  for ( int i=0;i< tds.size(); i++ )
  {
  Record rec = tds.getRecord(i); // zero based
  String columnA = rec.getValue("a");
  if ( columnA.equals ("1") )
  System.out.print ("We got a column!");
  }
  tds.close();
  

It is important to remember to always close() the TableDataSet when you are finished with it.

As you can see, using a TableDataSet makes doing selects from the database trivial. You do not need to write any SQL and it makes it easy to cache a TableDataSet for future use within your application.

Version:
$Revision: 568 $
Author:
Jon S. Stevens

Field Summary
 
Fields inherited from class com.workingdogs.village.DataSet
ALL_RECORDS, conn, records, resultSet, schema, selectString, stmt
 
Constructor Summary
TableDataSet()
          Default constructor.
TableDataSet(java.sql.Connection conn, Schema schema, KeyDef keydef)
          Creates a new TableDataSet object.
TableDataSet(java.sql.Connection conn, java.lang.String tableName)
          Creates a new TableDataSet object.
TableDataSet(java.sql.Connection conn, java.lang.String tableName, KeyDef keydef)
          Creates a new TableDataSet object.
TableDataSet(java.sql.Connection conn, java.lang.String tableName, java.lang.String columns)
          Creates a new TableDataSet object.
TableDataSet(java.sql.Connection conn, java.lang.String tableName, java.lang.String columns, KeyDef keydef)
          Creates a new TableDataSet object.
 
Method Summary
 DataSet fetchRecords(int start, int max)
          Fetch start to max records.
 java.lang.String getSelectString()
          Builds the select string that was used to populate this TableDataSet.
 TableDataSet order(java.lang.String order)
          Sets the value for the SQL portion of the ORDER statement
 TableDataSet other(java.lang.String other)
          Sets the value for the SQL portion of the OTHER statement
 void refresh(java.sql.Connection conn)
          This method refreshes all of the Records stored in this TableDataSet.
 boolean refreshOnSave()
          Setting this causes each Record to refresh itself when a save() is performed on it.
 void removeDeletedRecords()
          Removes any records that are marked as a zombie.
 int save()
          Saves all the records in the DataSet.
 int save(boolean intransaction)
          Saves all the records in the DataSet with the intransaction boolean value.
 int save(java.sql.Connection conn, boolean intransaction)
          Saves all the records in the DataSet with the given connection and intransaction boolean value.
 void setRefreshOnSave(boolean val)
          Setting this causes each Record to refresh itself when a save() is performed on it.
 TableDataSet tableQualifier(java.lang.String tq)
          This sets additional SQL for the table name.
 TableDataSet where(java.lang.String where)
          Sets the value for the SQL portion of the WHERE statement
 
Methods inherited from class com.workingdogs.village.DataSet
addRecord, addRecord, allRecordsRetrieved, clearRecords, close, connection, containsRecord, fetchRecords, fetchRecords, getRecord, keydef, lastFetchSize, releaseRecords, removeRecord, reset, resultSet, schema, size, tableName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TableDataSet

public TableDataSet()
             throws java.sql.SQLException,
                    DataSetException
Default constructor.

Throws:
java.sql.SQLException
DataSetException

TableDataSet

public TableDataSet(java.sql.Connection conn,
                    java.lang.String tableName)
             throws java.sql.SQLException,
                    DataSetException
Creates a new TableDataSet object.

Parameters:
conn - TODO: DOCUMENT ME!
tableName - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

TableDataSet

public TableDataSet(java.sql.Connection conn,
                    Schema schema,
                    KeyDef keydef)
             throws java.sql.SQLException,
                    DataSetException
Creates a new TableDataSet object.

Parameters:
conn - TODO: DOCUMENT ME!
schema - TODO: DOCUMENT ME!
keydef - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

TableDataSet

public TableDataSet(java.sql.Connection conn,
                    java.lang.String tableName,
                    KeyDef keydef)
             throws java.sql.SQLException,
                    DataSetException
Creates a new TableDataSet object.

Parameters:
conn - TODO: DOCUMENT ME!
tableName - TODO: DOCUMENT ME!
keydef - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

TableDataSet

public TableDataSet(java.sql.Connection conn,
                    java.lang.String tableName,
                    java.lang.String columns)
             throws java.sql.SQLException,
                    DataSetException
Creates a new TableDataSet object.

Parameters:
conn - TODO: DOCUMENT ME!
tableName - TODO: DOCUMENT ME!
columns - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

TableDataSet

public TableDataSet(java.sql.Connection conn,
                    java.lang.String tableName,
                    java.lang.String columns,
                    KeyDef keydef)
             throws java.sql.SQLException,
                    DataSetException
Creates a new TableDataSet object.

Parameters:
conn - TODO: DOCUMENT ME!
tableName - TODO: DOCUMENT ME!
columns - TODO: DOCUMENT ME!
keydef - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!
Method Detail

fetchRecords

public DataSet fetchRecords(int start,
                            int max)
                     throws java.sql.SQLException,
                            DataSetException
Fetch start to max records. start is at Record 0

Overrides:
fetchRecords in class DataSet
Parameters:
start -
max -
Returns:
an instance of myself
Throws:
java.sql.SQLException
DataSetException

save

public int save()
         throws java.sql.SQLException,
                DataSetException
Saves all the records in the DataSet.

Returns:
total number of records updated/inserted/deleted
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

save

public int save(boolean intransaction)
         throws java.sql.SQLException,
                DataSetException
Saves all the records in the DataSet with the intransaction boolean value.

Parameters:
intransaction - TODO: DOCUMENT ME!
Returns:
total number of records updated/inserted/deleted
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

save

public int save(java.sql.Connection conn,
                boolean intransaction)
         throws java.sql.SQLException,
                DataSetException
Saves all the records in the DataSet with the given connection and intransaction boolean value.

Parameters:
conn - TODO: DOCUMENT ME!
intransaction - TODO: DOCUMENT ME!
Returns:
total number of records updated/inserted/deleted
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

removeDeletedRecords

public void removeDeletedRecords()
                          throws DataSetException
Removes any records that are marked as a zombie.

Throws:
DataSetException - TODO: DOCUMENT ME!

where

public TableDataSet where(java.lang.String where)
                   throws DataSetException
Sets the value for the SQL portion of the WHERE statement

Parameters:
where - TODO: DOCUMENT ME!
Returns:
instance of self
Throws:
DataSetException - TODO: DOCUMENT ME!

order

public TableDataSet order(java.lang.String order)
                   throws DataSetException
Sets the value for the SQL portion of the ORDER statement

Parameters:
order - TODO: DOCUMENT ME!
Returns:
instance of self
Throws:
DataSetException - TODO: DOCUMENT ME!

other

public TableDataSet other(java.lang.String other)
                   throws DataSetException
Sets the value for the SQL portion of the OTHER statement

Parameters:
other - TODO: DOCUMENT ME!
Returns:
instance of self
Throws:
DataSetException - TODO: DOCUMENT ME!

refresh

public void refresh(java.sql.Connection conn)
             throws java.sql.SQLException,
                    DataSetException
This method refreshes all of the Records stored in this TableDataSet.

Parameters:
conn - TODO: DOCUMENT ME!
Throws:
java.sql.SQLException - TODO: DOCUMENT ME!
DataSetException - TODO: DOCUMENT ME!

setRefreshOnSave

public void setRefreshOnSave(boolean val)
Setting this causes each Record to refresh itself when a save() is performed on it.

Default value is false.

Parameters:
val - TODO: DOCUMENT ME!

refreshOnSave

public boolean refreshOnSave()
Setting this causes each Record to refresh itself when a save() is performed on it.

Default value is false.

Returns:
true if it is on; false otherwise

tableQualifier

public TableDataSet tableQualifier(java.lang.String tq)
This sets additional SQL for the table name. The string appears after the table name. Sybase users would set this to "HOLDLOCK" to get repeatable reads.

FIXME: Is this right? I don't use Sybase.

Parameters:
tq - TODO: DOCUMENT ME!
Returns:
an instance of self

getSelectString

public java.lang.String getSelectString()
                                 throws DataSetException
Builds the select string that was used to populate this TableDataSet.

Specified by:
getSelectString in class DataSet
Returns:
SQL select string
Throws:
DataSetException - TODO: DOCUMENT ME!


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.