Top Description Fields Constructors Methods
org.hsqldb.jdbc

public final Class JDBCRowId

extends Object
implements RowId
Class Inheritance
All Implemented Interfaces
java.sql.RowId
Imports
org.hsqldb.error.ErrorCode, org.hsqldb.lib.StringConverter, java.io.IOException, java.sql.RowId, .SQLException, java.util.Arrays

The representation (mapping) in the Java programming language of an SQL ROWID value. An SQL ROWID is a built-in type, a value of which can be thought of as an address for its identified row in a database table. Whether that address is logical or, in any respects, physical is determined by its originating data source.

Methods in the interfaces ResultSet, CallableStatement, and PreparedStatement, such as getRowId and setRowId allow a programmer to access a SQL ROWID value. The RowId interface provides a method for representing the value of the ROWID as a byte array or as a String.

The method getRowIdLifetime in the interface DatabaseMetaData, can be used to determine if a RowId object remains valid for the duration of the transaction in which the RowId was created, the duration of the session in which the RowId was created, or, effectively, for as long as its identified row is not deleted. In addition to specifying the duration of its valid lifetime outside its originating data source, getRowIdLifetime specifies the duration of a ROWID value's valid lifetime within its originating data source. In this, it differs from a large object, because there is no limit on the valid lifetime of a large object within its originating data source.

All methods on the RowId interface must be fully implemented if the JDBC driver supports the data type.

Author
Campbell Burnet (campbell-burnet@users dot sourceforge.net)
Since
JDK 1.6, HSQLDB 2.0
See Also
java.sql.DatabaseMetaData

Field Summary

Modifier and TypeField and Description
private int
private final byte[]

Constructor Summary

AccessConstructor and Description
public
JDBCRowId(final byte[]
the octet sequence representing the Rowid value
id
)

Constructs a new JDBCRowId instance wrapping the given octet sequence.

public
JDBCRowId(RowId
the octet sequence representing the Rowid value
id
)

Constructs a new JDBCRowId instance whose internal octet sequence is a copy of the octet sequence of the given RowId object.

public
JDBCRowId(final String
the hexadecimal character sequence from which to derive the internal octet sequence
hex
)

Constructs a new JDBCRowId instance whose internal octet sequence is that represented by the given hexadecimal character sequence.

Method Summary

Modifier and TypeMethod and Description
public boolean

Returns:

true if the RowIds are equal; false otherwise
equals
(Object
the Object to compare this RowId object against.
obj
)

Overrides java.lang.Object.equals.

Implements java.sql.RowId.equals.

Compares this RowId to the specified object.

public byte[]

Returns:

an array of bytes, whose length is determined by the driver supplying the connection, representing the value of the ROWID designated by this java.sql.RowId object.
getBytes
()

Implements java.sql.RowId.getBytes.

Returns an array of bytes representing the value of the SQL ROWID designated by this java.sql.RowId object.

public int

Returns:

a hash code for the RowId
hashCode
()

Overrides java.lang.Object.hashCode.

Implements java.sql.RowId.hashCode.

Returns a hash code value of this RowId object.

pack-priv Object

Returns:

direct reference to id bytes.
id
()

Direct access to id bytes for subclassing.

public String

Returns:

a String whose format is determined by the driver supplying the connection, representing the value of the ROWID designated by this java.sql.RowId object.
toString
()

Overrides java.lang.Object.toString.

Implements java.sql.RowId.toString.

Returns a String representing the value of the SQL ROWID designated by this java.sql.RowId object.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAllwaitwaitwait

Field Detail

hashback to summary
private int hash
idback to summary
private final byte[] id

Constructor Detail

JDBCRowIdback to summary
public JDBCRowId(final byte[] id) throws SQLException

Constructs a new JDBCRowId instance wrapping the given octet sequence.

This constructor may be used internally to retrieve result set values as RowId objects, yet it also may need to be public to allow access from other packages. As such (in the interest of efficiency) this object maintains a reference to the given octet sequence rather than making a copy; special care should be taken by external clients never to use this constructor with a byte array object that may later be modified externally.

Parameters
id:byte[]

the octet sequence representing the Rowid value

Exceptions
SQLException:
if the argument is null
JDBCRowIdback to summary
public JDBCRowId(RowId id) throws SQLException

Constructs a new JDBCRowId instance whose internal octet sequence is a copy of the octet sequence of the given RowId object.

Parameters
id:RowId

the octet sequence representing the Rowid value

Exceptions
SQLException:
if the argument is null
JDBCRowIdback to summary
public JDBCRowId(final String hex) throws SQLException

Constructs a new JDBCRowId instance whose internal octet sequence is that represented by the given hexadecimal character sequence.

Parameters
hex:String

the hexadecimal character sequence from which to derive the internal octet sequence

Exceptions
SQLException:
if the argument is null or is not a valid hexadecimal character sequence

Method Detail

equalsback to summary
public boolean equals(Object obj)

Overrides java.lang.Object.equals.

Implements java.sql.RowId.equals.

Compares this RowId to the specified object. The result is true if and only if the argument is not null and is a RowId object that represents the same ROWID as this object.

It is important to consider both the origin and the valid lifetime of a RowId when comparing it to another RowId. If both are valid, and both are from the same table on the same data source, then if they are equal they identify the same row; if one or more is no longer guaranteed to be valid, or if they originate from different data sources, or different tables on the same data source, they may be equal but still not identify the same row.

Parameters
obj:Object

the Object to compare this RowId object against.

Returns:boolean

true if the RowIds are equal; false otherwise

Since
JDK 1.6, HSQLDB 2.0
getBytesback to summary
public byte[] getBytes()

Implements java.sql.RowId.getBytes.

Returns an array of bytes representing the value of the SQL ROWID designated by this java.sql.RowId object.

Returns:byte[]

an array of bytes, whose length is determined by the driver supplying the connection, representing the value of the ROWID designated by this java.sql.RowId object.

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Implements java.sql.RowId.hashCode.

Returns a hash code value of this RowId object.

Returns:int

a hash code for the RowId

idback to summary
pack-priv Object id()

Direct access to id bytes for subclassing.

Returns:Object

direct reference to id bytes.

toStringback to summary
public String toString()

Overrides java.lang.Object.toString.

Implements java.sql.RowId.toString.

Returns a String representing the value of the SQL ROWID designated by this java.sql.RowId object.

Like java.sql.Date.toString() returns the contents of its DATE as the String "2004-03-17" rather than as DATE literal in SQL (which would have been the String DATE "2004-03-17"), toString() returns the contents of its ROWID in a form specific to the driver supplying the connection, and possibly not as a ROWID literal.

Returns:String

a String whose format is determined by the driver supplying the connection, representing the value of the ROWID designated by this java.sql.RowId object.