|
BEA Systems, Inc. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
WLRowSetMetaData extends the javax.sql.RowSetMetaData
interface with extended meta-data methods.
The RowSet uses Optimistic concurrency control to maintain consistency between the time the data is read and when it is updated most likely in a separate transaction.
The descriptions of the optimistic concurrency policy options (such as VERIFY_READ_COLUMNS, VERIFY_MODIFIED_COLUMNS, etc.) use this simple table to demonstrate the behavior of each. The examples assume the RowSet contains all columns from this database table. Some options also use an additional e_version column.
create table employees( e_id integer primary key, e_first varchar(25), e_last varchar(25), e_salary integer ); Assume that this table has a single row: e_id = 1 e_first = "John" e_last = "Doe" e_salary = 10000
Field Summary | |
static int |
VERIFY_AUTO_VERSION_COLUMNS
The VERIFY_AUTO_VERSION_COLUMNS option includes the primary key columns and specified version columns in the WHERE clause. |
static int |
VERIFY_MODIFIED_COLUMNS
The VERIFY_MODIFIED_COLUMNS only verifies the modified columns during the update. |
static int |
VERIFY_NONE
The VERIFY_NONE option only includes the primary key columns in the WHERE clause. |
static int |
VERIFY_READ_COLUMNS
The VERIFY_READ_COLUMNS optimistic concurrency policy includes all values read into the WLCachedRowSet in the where clause when changes are written back to the database. |
static int |
VERIFY_SELECTED_COLUMNS
The VERIFY_SELECTED_COLUMNS only verifies specified columns and the primary key columns during the update. |
static int |
VERIFY_VERSION_COLUMNS
The VERIFY_VERSION_COLUMNS option includes the primary key columns and specified version columns in the WHERE clause. |
Fields inherited from class java.sql.ResultSetMetaData |
columnNoNulls,
columnNullable,
columnNullableUnknown |
Method Summary | |
int |
findColumn(java.lang.String n)
Returns the column index for the specified column name. |
boolean |
getBatchDeletes()
Returns the current batch delete setting. |
boolean |
getBatchInserts()
Returns the current batch insert setting. |
boolean |
getBatchUpdates()
Returns the current batch update setting. |
int |
getBatchVerifySize()
Returns the current batch verify size. |
java.lang.String |
getDefaultNamespace()
Returns the XML schema's default namespace for this RowSet. |
boolean |
getGroupDeletes()
Returns the current group deletes setting. |
int |
getGroupDeleteSize()
Returns the current group delete size. |
int |
getOptimisticPolicy()
Returns the current optimistic concurrency policy. |
java.lang.String |
getOptimisticPolicyAsString()
Returns the current optimistic policy as a String |
java.lang.String |
getQualifiedTableName(int i)
getQualifiedTableName behaves like getTableName; however, if the catalog and/or schema name have been set then getQualifiedTableName returns catalog.schema.column. |
java.lang.String |
getQualifiedTableName(java.lang.String n)
getQualifiedTableName behaves like getTableName; however, if the catalog and/or schema name have been set then getQualifiedTableName returns catalog.schema.column. |
java.lang.String |
getRowName()
Returns the name of the Row element in the schema and instance. |
java.lang.String |
getRowSetName()
Returns the name of the Row Set in the schema and instance. |
boolean |
getVerboseSQL()
Returns the current verbose SQL setting |
java.lang.String |
getWriteColumnName(int i)
Returns the write column name for the specified column. |
java.lang.String |
getWriteColumnName(java.lang.String colName)
Returns the write column name for the specified column. |
java.lang.String |
getWriteTableName()
Returns the write table name. |
java.lang.String |
getXMLSchemaLocation()
Returns the schemaLocation attribute which instance documents will use to refer to this schema document. |
boolean |
haveSetPKColumns()
Indicates whether setPrimaryKeyColumn has been called on any of the
columns. |
boolean |
isAutoVersionColumn(int i)
Indicates whether the column will be used for a VERIFY_AUTO_VERSION_COLUMNS verification. |
boolean |
isAutoVersionColumn(java.lang.String colName)
Indicates whether the column will be used for a VERIFY_AUTO_VERSION_COLUMNS verification. |
boolean |
isPrimaryKeyColumn(int i)
Indicates whether the column is a primary key column. |
boolean |
isPrimaryKeyColumn(java.lang.String colName)
Indicates whether the column is a primary key column. |
boolean |
isReadOnly()
Indicates whether the entire RowSet is ReadOnly. |
boolean |
isReadOnly(java.lang.String colName)
Indicates whether the column is marked read-only. |
boolean |
isSelectedColumn(int i)
Indicates whether the column will be used for a VERIFY_SELECTED_COLUMNS verification. |
boolean |
isSelectedColumn(java.lang.String colName)
Indicates whether the column will be used for a VERIFY_SELECTED_COLUMNS verification. |
boolean |
isVersionColumn(int i)
Indicates whether the column will be used for a VERIFY_VERSION_COLUMNS verification. |
boolean |
isVersionColumn(java.lang.String colName)
Indicates whether the column will be used for a VERIFY_VERSION_COLUMNS verification. |
void |
loadXMLSchema(XMLInputStream xis)
Loads the WLRowSetMetaData from an XML Schema document in the XMLInputStream. |
void |
markUpdateProperties(java.lang.String writeTableName,
java.lang.String pkColumn,
java.lang.String rowVersionColumn)
markUpdateProperties is a convenience method for indicating the writeTableName, a single primary key column, and a row version column. |
void |
setAutoVersionColumn(int i,
boolean b)
Sets a column to be a version column. |
void |
setAutoVersionColumn(java.lang.String colName,
boolean b)
Sets a column to be a version column. |
void |
setBatchDeletes(boolean b)
Sets whether DELETE statements should use a JDBC batch statement or should be issued as individual DELETE statements. |
void |
setBatchInserts(boolean b)
Sets whether INSERT statements should use a JDBC batch statement or should be issued as individual INSERT statements. |
void |
setBatchUpdates(boolean b)
Sets whether UPDATE statements should use a JDBC batch statement or should be issued as individual UPDATE statements. |
void |
setBatchVerifySize(int size)
When batched updates and enabled and the database/driver do not return the updated row counts from batched statements, an extra select query is issued prior to the batched updates to ensure there is no optimistic conflict. |
void |
setDefaultNamespace(java.lang.String namespace)
Sets the XML schema's default namespace for this RowSet. |
void |
setGroupDeletes(boolean b)
Sets the RowSet to use group deletes. |
void |
setGroupDeleteSize(int size)
Sets the number of rows sent in an individual delete statement. |
void |
setOptimisticPolicy(int policy)
Sets the optimistic concurrency policy for updates |
void |
setOptimisticPolicyAsString(java.lang.String policy)
Sets the optimistic concurrency policy for updates |
void |
setPrimaryKeyColumn(int i,
boolean b)
Sets the column to be a primary key column. |
void |
setPrimaryKeyColumn(java.lang.String colName,
boolean b)
Sets the column to be a primary key column. |
void |
setReadOnly(boolean b)
Sets the entire RowSet to be ReadOnly. |
void |
setReadOnly(int i,
boolean b)
Sets the column to be a read-only column. |
void |
setReadOnly(java.lang.String colName,
boolean b)
Sets the column to be a read-only column. |
void |
setRowName(java.lang.String rowName)
Sets the name of the Row element in the schema and instance. |
void |
setRowSetName(java.lang.String rowSetName)
Sets the name of the Row Set in the schema and instance. |
void |
setTableName(java.lang.String tableName)
Sets the table name for all columns. |
void |
setTableName(java.lang.String colName,
java.lang.String tableName)
Sets the table name for the specified column. |
void |
setVerboseSQL(boolean b)
Enables/disables printing of the executed SQL statements to System.out. |
void |
setVerifySelectedColumn(int i,
boolean b)
Sets a column to be verified during the update. |
void |
setVerifySelectedColumn(java.lang.String colName,
boolean b)
Sets a column to be verified during the update. |
void |
setVersionColumn(int i,
boolean b)
Sets a column to be a version column. |
void |
setVersionColumn(java.lang.String colName,
boolean b)
Sets a column to be a version column. |
void |
setWriteColumnName(int i,
java.lang.String writeColumnName)
Sets the write column name for the specified column. |
void |
setWriteColumnName(java.lang.String colName,
java.lang.String writeColumnName)
Sets the write column name for the specified column. |
void |
setWriteTableName(java.lang.String writeTableName)
Sets a table to be the write table. |
void |
setXMLSchemaLocation(java.lang.String location)
Sets the schemaLocation attribute which instance documents will use to refer to this schema document. |
void |
writeXMLSchema(XMLOutputStream xos)
Writes the WLRowSetMetaData as an XML Schema document to the specified XMLOutputStream. |
Methods inherited from interface javax.sql.RowSetMetaData |
setAutoIncrement,
setCaseSensitive,
setCatalogName,
setColumnCount,
setColumnDisplaySize,
setColumnLabel,
setColumnName,
setColumnType,
setColumnTypeName,
setCurrency,
setNullable,
setPrecision,
setScale,
setSchemaName,
setSearchable,
setSigned,
setTableName |
Methods inherited from interface java.sql.ResultSetMetaData |
getCatalogName,
getColumnClassName,
getColumnCount,
getColumnDisplaySize,
getColumnLabel,
getColumnName,
getColumnType,
getColumnTypeName,
getPrecision,
getScale,
getSchemaName,
getTableName,
isAutoIncrement,
isCaseSensitive,
isCurrency,
isDefinitelyWritable,
isNullable,
isReadOnly,
isSearchable,
isSigned,
isWritable |
Field Detail |
public static final int VERIFY_READ_COLUMNS
For instance, if the RowSet attempts to update John Doe's salary to 20000, it will issue:
UPDATE SET e_salary=20000 WHERE e_id=1 AND e_first='John' AND e_last='Doe' AND e_salary=10000
public static final int VERIFY_MODIFIED_COLUMNS
For instance, if the RowSet attempts to update John Doe's salary to 20000, it will issue:
UPDATE SET e_salary=20000 WHERE e_id=1 AND e_salary=10000
setOptimisticPolicy(int)
,
setOptimisticPolicyAsString(java.lang.String)
public static final int VERIFY_SELECTED_COLUMNS
acceptChanges
.
This method is used when the application wants complete control to customize which columns are verified.
For instance, if the RowSet attempts to update John Doe's salary to 20000 and setVerifySelectedColumn("e_first") has been called, it will issue:
UPDATE SET e_salary=20000 WHERE e_id=1 AND e_first='John'
setOptimisticPolicy(int)
,
setOptimisticPolicyAsString(java.lang.String)
public static final int VERIFY_NONE
For instance, if the RowSet attempts to update John Doe's salary to 20000, it will issue:
UPDATE SET e_salary=20000 WHERE e_id=1
setOptimisticPolicy(int)
,
setOptimisticPolicyAsString(java.lang.String)
public static final int VERIFY_AUTO_VERSION_COLUMNS
The VERIFY_AUTO_VERSION_COLUMNS automatically updates the version columns to the next increasing value
UPDATE SET e_salary=20000, e_version=2 WHERE e_id=1 AND e_version=1
setOptimisticPolicy(int)
,
setOptimisticPolicyAsString(java.lang.String)
public static final int VERIFY_VERSION_COLUMNS
The database must handle updating the version column to a new value. Some databases provide support for a version type that will automatically be updated, but it is also possible to write a database trigger to update the version column.
UPDATE SET e_salary=20000 WHERE e_id=1 AND e_version=1
setOptimisticPolicy(int)
,
setOptimisticPolicyAsString(java.lang.String)
Method Detail |
public int getOptimisticPolicy()
Possible values are:
1 = VERIFY_READ_COLUMNS (the default)
2 = VERIFY_MODIFIED_COLUMNS
3 = VERIFY_SELECTED_COLUMNS
4 = VERIFY_NONE
5 = VERIFY_AUTO_VERSION_COLUMNS
6 = VERIFY_VERSION_COLUMNS
public java.lang.String getOptimisticPolicyAsString()
public void setOptimisticPolicy(int policy) throws java.sql.SQLException
Possible values are:
1 = VERIFY_READ_COLUMNS (the default)
2 = VERIFY_MODIFIED_COLUMNS
3 = VERIFY_SELECTED_COLUMNS
4 = VERIFY_NONE
5 = VERIFY_AUTO_VERSION_COLUMNS
6 = VERIFY_VERSION_COLUMNS
setOptimisticPolicy must be called before calling
acceptChanges
.
public void setOptimisticPolicyAsString(java.lang.String policy) throws java.sql.SQLException
Possible values are:
VERIFY_READ_COLUMNS (the default)
VERIFY_MODIFIED_COLUMNS
VERIFY_SELECTED_COLUMNS
VERIFY_NONE
VERIFY_AUTO_VERSION_COLUMNS
VERIFY_VERSION_COLUMNS
setOptimisticPolicy must be called before calling
acceptChanges
.
public void setBatchInserts(boolean b)
Batch inserts require a JDBC 2.0 or later driver that supports the java.sql.PreparedStatement.addBatch method
By default, batch inserts are not enabled.
public boolean getBatchInserts()
By default, batch inserts are not enabled.
public void setBatchDeletes(boolean b)
Batch deletes require a JDBC 2.0 or later driver that supports the java.sql.PreparedStatement.addBatch method
By default, batch deletes are not enabled.
public boolean getBatchDeletes()
By default, batch deletes are not enabled.
public void setBatchUpdates(boolean b)
Batch updates require a JDBC 2.0 or later driver that supports the java.sql.PreparedStatement.addBatch method
By default, batch updates are not enabled.
public boolean getBatchUpdates()
By default, batch updates are not enabled.
public void setVerboseSQL(boolean b)
public boolean getVerboseSQL()
public void setGroupDeletes(boolean b)
public boolean getGroupDeletes()
public void setGroupDeleteSize(int size) throws java.sql.SQLException
public int getGroupDeleteSize()
public void setBatchVerifySize(int size) throws java.sql.SQLException
public int getBatchVerifySize()
public int findColumn(java.lang.String n) throws java.sql.SQLException
public java.lang.String getQualifiedTableName(java.lang.String n) throws java.sql.SQLException
public java.lang.String getQualifiedTableName(int i) throws java.sql.SQLException
public void setTableName(java.lang.String tableName) throws java.sql.SQLException
The RowSet implementation will attempt to infer table names when
it is populated with data. However, many JDBC drivers do not
implement java.sql.ResultSetMetaData.getTable
, so it
is usually required to call setTableName before writing the
RowSet's data.
public void setTableName(java.lang.String colName, java.lang.String tableName) throws java.sql.SQLException
The RowSet implementation will attempt to infer table names when
it is populated with data. However, many JDBC drivers do not
implement java.sql.ResultSetMetaData.getTable
so it
is usually required to call setTableName before writing the
RowSet's data.
public void setPrimaryKeyColumn(int i, boolean b) throws java.sql.SQLException
Marking a column to be a primary key automatically marks it as read-only. To update a primary key column, it is necessary to explicitly call setReadOnly(col, false) after setPrimaryKeyColumn.
i
- column numberb
- isPrimaryKeypublic void setPrimaryKeyColumn(java.lang.String colName, boolean b) throws java.sql.SQLException
Marking a column to be a primary key automatically marks it as read-only. To update a primary key column, it is necessary to explicitly call setReadOnly(col, false) after setPrimaryKeyColumn.
colName
- column nameb
- isPrimaryKeypublic boolean isPrimaryKeyColumn(int i) throws java.sql.SQLException
i
- column numberpublic boolean isPrimaryKeyColumn(java.lang.String colName) throws java.sql.SQLException
colName
- column namepublic boolean haveSetPKColumns()
setPrimaryKeyColumn
has been called on any of the
columns.
This is generally useful for a RowSetWriter implementation which requires the user to set primary key columns to determine whether this has occurred.
public boolean isReadOnly(java.lang.String colName) throws java.sql.SQLException
colName
- column namepublic void setReadOnly(int i, boolean b) throws java.sql.SQLException
i
- column numberb
- isReadOnlypublic void setReadOnly(java.lang.String colName, boolean b) throws java.sql.SQLException
colName
- column nameb
- isReadOnlypublic boolean isReadOnly() throws java.sql.SQLException
public void setReadOnly(boolean b) throws java.sql.SQLException
b
- isReadOnlypublic void setVerifySelectedColumn(int i, boolean b) throws java.sql.SQLException
i
- column numberb
- isVerifiedColumnpublic boolean isSelectedColumn(int i) throws java.sql.SQLException
public boolean isSelectedColumn(java.lang.String colName) throws java.sql.SQLException
public void setVerifySelectedColumn(java.lang.String colName, boolean b) throws java.sql.SQLException
colName
- column nameb
- isVerifiedColumnpublic void setAutoVersionColumn(int i, boolean b) throws java.sql.SQLException
i
- column numberb
- isVersionColumnpublic void setAutoVersionColumn(java.lang.String colName, boolean b) throws java.sql.SQLException
colName
- column nameb
- isVersionColumnpublic boolean isAutoVersionColumn(java.lang.String colName) throws java.sql.SQLException
public boolean isAutoVersionColumn(int i) throws java.sql.SQLException
public void setVersionColumn(int i, boolean b) throws java.sql.SQLException
i
- column numberb
- isVersionColumnpublic void setVersionColumn(java.lang.String colName, boolean b) throws java.sql.SQLException
colName
- column nameb
- isVersionColumnpublic boolean isVersionColumn(java.lang.String colName) throws java.sql.SQLException
public boolean isVersionColumn(int i) throws java.sql.SQLException
public void setWriteTableName(java.lang.String writeTableName) throws java.sql.SQLException
The write table is the only table that can be updated or deleted.
This is typically used when a RowSet is populated via a join from multiple tables, but the rowset should only update one table.
Any column which is not from the write table is marked as read-only.
For instance, a rowset might include a join of orders and customers. The write table could be set to orders. If deleteRow were called, it would delete the order row, but not delete the customer row.
writeTableName
- the write table namepublic java.lang.String getWriteTableName()
public void markUpdateProperties(java.lang.String writeTableName, java.lang.String pkColumn, java.lang.String rowVersionColumn) throws java.sql.SQLException
setTableName(writeTableName); setWriteTableName(writeTableName); setPrimaryKeyColumn(findColumn(pkColumn), true); setOptimisticPolicy(VERIFY_VERSION_COLUMNS); setVersionColumn(findColumn(rowVersionColumn), true);
public java.lang.String getWriteColumnName(int i) throws java.sql.SQLException
i
- column numberpublic java.lang.String getWriteColumnName(java.lang.String colName) throws java.sql.SQLException
By default the write column name is the same as the column name.
The write column name may be set to a different value with setWriteColumnName. This is commonly done when queries like SELECT colName as alias ... are done. In this case, the rowset only sees the column alias and needs the writeColumnName to be set to the actual column name for updates to be successful.
colName
- column namepublic void setWriteColumnName(int i, java.lang.String writeColumnName) throws java.sql.SQLException
By default the write column name is the same as the column name.
The write column name may be set to a different value with setWriteColumnName. This is commonly done when queries like SELECT colName as alias ... are done. In this case, the rowset only sees the column alias and needs the writeColumnName to be set to the actual column name for updates to be successful.
i
- column numberwriteColumnName
- write column namepublic void setWriteColumnName(java.lang.String colName, java.lang.String writeColumnName) throws java.sql.SQLException
By default the write column name is the same as the column name.
The write column name may be set to a different value with setWriteColumnName. This is commonly done when queries like SELECT colName as alias ... are done. In this case, the rowset only sees the column alias and needs the writeColumnName to be set to the actual column name for updates to be successful.
colName
- column namewriteColumnName
- write column namepublic void setDefaultNamespace(java.lang.String namespace)
String
- default namespacepublic java.lang.String getDefaultNamespace()
public void setRowName(java.lang.String rowName)
the
- row namepublic java.lang.String getRowName()
The default value is getWriteTableName() + "Row". If the write table name has not been set, it defaults to "TableRow".
public void setRowSetName(java.lang.String rowSetName)
the
- row set namepublic java.lang.String getRowSetName()
The default value is getRowName() + "Set"
public void writeXMLSchema(XMLOutputStream xos) throws java.io.IOException, java.sql.SQLException
public void loadXMLSchema(XMLInputStream xis) throws java.io.IOException, java.sql.SQLException
public java.lang.String getXMLSchemaLocation()
The default value is: getDefaultNamespace()+"/" + getRowSetName()+".xsd"
public void setXMLSchemaLocation(java.lang.String location)
|
Documentation is available at http://download.oracle.com/docs/cd/E13222_01/wls/docs81 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |