- All Implemented Interfaces:
RowId
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.
- Since:
- JDK 1.6, HSQLDB 2.0
- Author:
- Campbell Burnet (campbell-burnet@users dot sourceforge.net)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionJDBCRowId
(byte[] id) Constructs a new JDBCRowId instance wrapping the given octet sequence.Constructs a new JDBCRowId instance whose internal octet sequence is that represented by the given hexadecimal character sequence.Constructs a new JDBCRowId instance whose internal octet sequence is a copy of the octet sequence of the given RowId object. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Compares thisRowId
to the specified object.byte[]
getBytes()
Returns an array of bytes representing the value of the SQLROWID
designated by thisjava.sql.RowId
object.int
hashCode()
Returns a hash code value of thisRowId
object.toString()
Returns a String representing the value of the SQL ROWID designated by thisjava.sql.RowId
object.
-
Constructor Details
-
JDBCRowId
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
- the octet sequence representing the Rowid value- Throws:
SQLException
- if the argument is null
-
JDBCRowId
Constructs a new JDBCRowId instance whose internal octet sequence is a copy of the octet sequence of the given RowId object.- Parameters:
id
- the octet sequence representing the Rowid value- Throws:
SQLException
- if the argument is null
-
JDBCRowId
Constructs a new JDBCRowId instance whose internal octet sequence is that represented by the given hexadecimal character sequence.- Parameters:
hex
- the hexadecimal character sequence from which to derive the internal octet sequence- Throws:
SQLException
- if the argument is null or is not a valid hexadecimal character sequence
-
-
Method Details
-
equals
Compares thisRowId
to the specified object. The result istrue
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 anotherRowId
. 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. -
getBytes
public byte[] getBytes()Returns an array of bytes representing the value of the SQLROWID
designated by thisjava.sql.RowId
object. -
toString
Returns a String representing the value of the SQL ROWID designated by thisjava.sql.RowId
object.Like
java.sql.Date.toString()
returns the contents of its DATE as theString
"2004-03-17" rather than as DATE literal in SQL (which would have been theString
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 aROWID
literal. -
hashCode
public int hashCode()Returns a hash code value of thisRowId
object.
-