## org.hsqldb.jdbc
Class JDBCRowId

    java.lang.Object
      org.hsqldb.jdbc.JDBCRowId

All Implemented Interfaces:
  RowId

    public final class JDBCRowId

extends Object
implements RowId

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.

Since:
  JDK 1.6, HSQLDB 2.0
Author:
  boucherb@users
See Also:
  `DatabaseMetaData`

Constructor Summary
`JDBCRowId(byte[] id)` Constructs a new JDBCRowId instance wrapping the given octet sequence.
`JDBCRowId(RowId id)` Constructs a new JDBCRowId instance whose internal octet sequence is is a copy of the octet sequence of the given RowId object.
`JDBCRowId(String hex)` Constructs a new JDBCRowId instance whose internal octet sequence is is that represented by the given hexidecimal character sequence.

Method Summary
`boolean` `equals(Object obj)` Compares this `RowId` to the specified object.
`byte[]` `getBytes()` Returns an array of bytes representing the value of the SQL `ROWID` designated by this `java.sql.RowId` object.
`int` `hashCode()` Returns a hash code value of this `RowId` object.
`String` `toString()` Returns a String representing the value of the SQL ROWID designated by this `java.sql.RowId` object.

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### JDBCRowId

    public JDBCRowId(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 extenal clients never to use this constructor with a byte array object that may later be modified extenally.

  Parameters:
    `id` - the octet sequence representing the Rowid value
  Throws:
    `SQLException` - if the argument is null

### JDBCRowId

    public JDBCRowId(RowId id)
              throws SQLException

  Constructs a new JDBCRowId instance whose internal octet sequence is 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

    public JDBCRowId(String hex)
              throws SQLException

  Constructs a new JDBCRowId instance whose internal octet sequence is is that represented by the given hexidecimal 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 Detail

### equals

    public boolean equals(Object obj)

  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.

  Specified by:
    `equals` in interface `RowId`
  Overrides:
    `equals` in class `Object`
  Parameters:
    `obj` - the `Object` to compare this `RowId` object against.
  Returns:
    true if the `RowId`s 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 SQL `ROWID` designated by this `java.sql.RowId` object.

  Specified by:
    `getBytes` in interface `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 String 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.

  Specified by:
    `toString` in interface `RowId`
  Overrides:
    `toString` in class `Object`
  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.

### hashCode

    public int hashCode()

  Returns a hash code value of this `RowId` object.

  Specified by:
    `hashCode` in interface `RowId`
  Overrides:
    `hashCode` in class `Object`
  Returns:
    a hash code for the `RowId`

Copyright © 2001 - 2013 HSQL Development Group.