|
BEA Systems, Inc. | ||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface WLRowSetMetaData
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 interface java.sql.ResultSetMetaData |
---|
columnNoNulls, columnNullable, columnNullableUnknown |
Method Summary | |
---|---|
int |
findColumn(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. |
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. |
String |
getOptimisticPolicyAsString()
Returns the current optimistic policy as a String |
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. |
String |
getQualifiedTableName(String n)
getQualifiedTableName behaves like getTableName; however, if the catalog and/or schema name have been set then getQualifiedTableName returns catalog.schema.column. |
String |
getRowName()
Returns the name of the Row element in the schema and instance. |
String |
getRowSetName()
Returns the name of the Row Set in the schema and instance. |
boolean |
getVerboseSQL()
Returns the current verbose SQL setting |
String |
getWriteColumnName(int i)
Returns the write column name for the specified column. |
String |
getWriteColumnName(String colName)
Returns the write column name for the specified column. |
String |
getWriteTableName()
Returns the write table name. |
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(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(String colName)
Indicates whether the column is a primary key column. |
boolean |
isReadOnly()
Indicates whether the entire RowSet is ReadOnly. |
boolean |
isReadOnly(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(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(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(String writeTableName,
String pkColumn,
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(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(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(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(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(String colName,
boolean b)
Sets the column to be a read-only column. |
void |
setRowName(String rowName)
Sets the name of the Row element in the schema and instance. |
void |
setRowSetName(String rowSetName)
Sets the name of the Row Set in the schema and instance. |
void |
setTableName(String tableName)
Sets the table name for all columns. |
void |
setTableName(String colName,
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(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(String colName,
boolean b)
Sets a column to be a version column. |
void |
setWriteColumnName(int i,
String writeColumnName)
Sets the write column name for the specified column. |
void |
setWriteColumnName(String colName,
String writeColumnName)
Sets the write column name for the specified column. |
void |
setWriteTableName(String writeTableName)
Sets a table to be the write table. |
void |
setXMLSchemaLocation(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 |
---|
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
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
WLRowSetMetaData.setOptimisticPolicy(int)
,
WLRowSetMetaData.setOptimisticPolicyAsString(java.lang.String)
,
Constant Field Valuesstatic 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'
WLRowSetMetaData.setOptimisticPolicy(int)
,
WLRowSetMetaData.setOptimisticPolicyAsString(java.lang.String)
,
Constant Field Valuesstatic 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
WLRowSetMetaData.setOptimisticPolicy(int)
,
WLRowSetMetaData.setOptimisticPolicyAsString(java.lang.String)
,
Constant Field Valuesstatic 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
WLRowSetMetaData.setOptimisticPolicy(int)
,
WLRowSetMetaData.setOptimisticPolicyAsString(java.lang.String)
,
Constant Field Valuesstatic 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
WLRowSetMetaData.setOptimisticPolicy(int)
,
WLRowSetMetaData.setOptimisticPolicyAsString(java.lang.String)
,
Constant Field ValuesMethod Detail |
---|
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
String getOptimisticPolicyAsString()
void setOptimisticPolicy(int policy) throws 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
.
SQLException
- thrown if the policy is not a legal
valuevoid setOptimisticPolicyAsString(String policy) throws 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
.
SQLException
- thrown if the policy is not a legal
valuevoid 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.
boolean getBatchInserts()
By default, batch inserts are not enabled.
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.
boolean getBatchDeletes()
By default, batch deletes are not enabled.
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.
boolean getBatchUpdates()
By default, batch updates are not enabled.
void setVerboseSQL(boolean b)
boolean getVerboseSQL()
void setGroupDeletes(boolean b)
boolean getGroupDeletes()
void setGroupDeleteSize(int size) throws SQLException
SQLException
- if the size is <= 0int getGroupDeleteSize()
void setBatchVerifySize(int size) throws SQLException
SQLException
- if the size is <= 0int getBatchVerifySize()
int findColumn(String n) throws SQLException
SQLException
- if the column name is not in the RowSetString getQualifiedTableName(String n) throws SQLException
SQLException
String getQualifiedTableName(int i) throws SQLException
SQLException
void setTableName(String tableName) throws 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.
SQLException
void setTableName(String colName, String tableName) throws 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.
SQLException
void setPrimaryKeyColumn(int i, boolean b) throws 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
- isPrimaryKey
SQLException
void setPrimaryKeyColumn(String colName, boolean b) throws 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
- isPrimaryKey
SQLException
boolean isPrimaryKeyColumn(int i) throws SQLException
i
- column number
SQLException
boolean isPrimaryKeyColumn(String colName) throws SQLException
colName
- column name
SQLException
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.
boolean isReadOnly(String colName) throws SQLException
colName
- column name
SQLException
void setReadOnly(int i, boolean b) throws SQLException
i
- column numberb
- isReadOnly
SQLException
void setReadOnly(String colName, boolean b) throws SQLException
colName
- column nameb
- isReadOnly
SQLException
boolean isReadOnly() throws SQLException
SQLException
void setReadOnly(boolean b) throws SQLException
b
- isReadOnly
SQLException
void setVerifySelectedColumn(int i, boolean b) throws SQLException
i
- column numberb
- isVerifiedColumn
SQLException
boolean isSelectedColumn(int i) throws SQLException
SQLException
boolean isSelectedColumn(String colName) throws SQLException
SQLException
void setVerifySelectedColumn(String colName, boolean b) throws SQLException
colName
- column nameb
- isVerifiedColumn
SQLException
void setAutoVersionColumn(int i, boolean b) throws SQLException
i
- column numberb
- isVersionColumn
SQLException
void setAutoVersionColumn(String colName, boolean b) throws SQLException
colName
- column nameb
- isVersionColumn
SQLException
boolean isAutoVersionColumn(String colName) throws SQLException
SQLException
boolean isAutoVersionColumn(int i) throws SQLException
SQLException
void setVersionColumn(int i, boolean b) throws SQLException
i
- column numberb
- isVersionColumn
SQLException
void setVersionColumn(String colName, boolean b) throws SQLException
colName
- column nameb
- isVersionColumn
SQLException
boolean isVersionColumn(String colName) throws SQLException
SQLException
boolean isVersionColumn(int i) throws SQLException
SQLException
void setWriteTableName(String writeTableName) throws 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 name
SQLException
String getWriteTableName()
void markUpdateProperties(String writeTableName, String pkColumn, String rowVersionColumn) throws SQLException
setTableName(writeTableName); setWriteTableName(writeTableName); setPrimaryKeyColumn(findColumn(pkColumn), true); setOptimisticPolicy(VERIFY_VERSION_COLUMNS); setVersionColumn(findColumn(rowVersionColumn), true);
SQLException
String getWriteColumnName(int i) throws SQLException
i
- column number
SQLException
String getWriteColumnName(String colName) throws 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 name
SQLException
void setWriteColumnName(int i, String writeColumnName) throws 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 name
SQLException
void setWriteColumnName(String colName, String writeColumnName) throws 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 name
SQLException
void setDefaultNamespace(String namespace)
String
- default namespaceString getDefaultNamespace()
void setRowName(String rowName)
the
- row nameString getRowName()
The default value is getWriteTableName() + "Row". If the write table name has not been set, it defaults to "TableRow".
void setRowSetName(String rowSetName)
the
- row set nameString getRowSetName()
The default value is getRowName() + "Set"
void writeXMLSchema(XMLOutputStream xos) throws IOException, SQLException
IOException
SQLException
void loadXMLSchema(XMLInputStream xis) throws IOException, SQLException
IOException
SQLException
String getXMLSchemaLocation()
The default value is: getDefaultNamespace()+"/" + getRowSetName()+".xsd"
void setXMLSchemaLocation(String location)
|
Documentation is available at http://download.oracle.com/docs/cd/E13222_01/wls/docs92 Copyright 2006 BEA Systems Inc. |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |