- java.lang.Object
-
- org.hsqldb.jdbc.JDBCRowId
-
- All Implemented Interfaces:
java.sql.RowId
public final class JDBCRowId extends java.lang.Object implements java.sql.RowIdThe 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, andPreparedStatement, such asgetRowIdandsetRowIdallow a programmer to access a SQLROWIDvalue. TheRowIdinterface provides a method for representing the value of theROWIDas a byte array or as aString.The method
getRowIdLifetimein the interfaceDatabaseMetaData, can be used to determine if aRowIdobject remains valid for the duration of the transaction in which theRowIdwas created, the duration of the session in which theRowIdwas 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,getRowIdLifetimespecifies the duration of aROWIDvalue'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
RowIdinterface 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:
DatabaseMetaData
-
-
Constructor Summary
Constructors Constructor Description JDBCRowId(byte[] id)Constructs a new JDBCRowId instance wrapping the given octet sequence.JDBCRowId(java.lang.String hex)Constructs a new JDBCRowId instance whose internal octet sequence is that represented by the given hexadecimal character sequence.JDBCRowId(java.sql.RowId id)Constructs a new JDBCRowId instance whose internal octet sequence is a copy of the octet sequence of the given RowId object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)Compares thisRowIdto the specified object.byte[]getBytes()Returns an array of bytes representing the value of the SQLROWIDdesignated by thisjava.sql.RowIdobject.inthashCode()Returns a hash code value of thisRowIdobject.java.lang.StringtoString()Returns a String representing the value of the SQL ROWID designated by thisjava.sql.RowIdobject.
-
-
-
Constructor Detail
-
JDBCRowId
public JDBCRowId(byte[] id) throws java.sql.SQLExceptionConstructs 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:
java.sql.SQLException- if the argument is null
-
JDBCRowId
public JDBCRowId(java.sql.RowId id) throws java.sql.SQLExceptionConstructs 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:
java.sql.SQLException- if the argument is null
-
JDBCRowId
public JDBCRowId(java.lang.String hex) throws java.sql.SQLExceptionConstructs 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:
java.sql.SQLException- if the argument is null or is not a valid hexadecimal character sequence
-
-
Method Detail
-
equals
public boolean equals(java.lang.Object obj)
Compares thisRowIdto the specified object. The result istrueif 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
RowIdwhen 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.- Specified by:
equalsin interfacejava.sql.RowId- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- theObjectto compare thisRowIdobject against.- Returns:
- true if the
RowIds are equal; false otherwise - Since:
- JDK 1.6, HSQLDB 2.0
-
getBytes
public byte[] getBytes()
Returns an array of bytes representing the value of the SQLROWIDdesignated by thisjava.sql.RowIdobject.- Specified by:
getBytesin interfacejava.sql.RowId- 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.
-
toString
public java.lang.String toString()
Returns a String representing the value of the SQL ROWID designated by thisjava.sql.RowIdobject.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 theStringDATE "2004-03-17"), toString() returns the contents of its ROWID in a form specific to the driver supplying the connection, and possibly not as aROWIDliteral.- Specified by:
toStringin interfacejava.sql.RowId- Overrides:
toStringin classjava.lang.Object- Returns:
- a String whose format is determined by the driver supplying the
connection, representing the value of the
ROWIDdesignated by thisjava.sql.RowIdobject.
-
hashCode
public int hashCode()
Returns a hash code value of thisRowIdobject.- Specified by:
hashCodein interfacejava.sql.RowId- Overrides:
hashCodein classjava.lang.Object- Returns:
- a hash code for the
RowId
-
-