# Ref

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

# Ref

`
public


interface
Ref
`  
`


`

|--------------|
| java.sql.Ref |

<br />

*** ** * ** ***

The mapping in the Java programming language of an SQL`REF`value, which is a reference to an SQL structured type value in the database.

SQL`REF`values are stored in a table that contains instances of a referenceable SQL structured type, and each`REF`value is a unique identifier for one instance in that table. An SQL`REF`value may be used in place of the SQL structured type it references, either as a column value in a table or an attribute value in a structured type.

Because an SQL`REF`value is a logical pointer to an SQL structured type, a`Ref`object is by default also a logical pointer. Thus, retrieving an SQL`REF`value as a`Ref`object does not materialize the attributes of the structured type on the client.

A`Ref`object can be stored in the database using the`PreparedStatement.setRef`method.

All methods on the`Ref`interface must be fully implemented if the JDBC driver supports the data type.  
**See also:**

- [Struct](https://developer.android.com/reference/java/sql/Struct)

## Summary

|                                                                                                                                                                                                                                                     ### Public methods                                                                                                                                                                                                                                                      ||
|--------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` abstract `[String](https://developer.android.com/reference/java/lang/String) | ` `[getBaseTypeName](https://developer.android.com/reference/java/sql/Ref#getBaseTypeName())`() ` Retrieves the fully-qualified SQL name of the SQL structured type that this`Ref`object references.                                                                                                                                                                                                                                        |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object) | ` `[getObject](https://developer.android.com/reference/java/sql/Ref#getObject())`() ` Retrieves the SQL structured type instance referenced by this`Ref`object.                                                                                                                                                                                                                                                                             |
| ` abstract `[Object](https://developer.android.com/reference/java/lang/Object) | ` `[getObject](https://developer.android.com/reference/java/sql/Ref#getObject(java.util.Map<java.lang.String,java.lang.Class<?>>))`(`[Map](https://developer.android.com/reference/java/util/Map)`<`[String](https://developer.android.com/reference/java/lang/String)`, `[Class](https://developer.android.com/reference/java/lang/Class)`<?>> map) ` Retrieves the referenced object and maps it to a Java type using the given type map. |
| ` abstract void`                                                               | ` `[setObject](https://developer.android.com/reference/java/sql/Ref#setObject(java.lang.Object))`(`[Object](https://developer.android.com/reference/java/lang/Object)` value) ` Sets the structured type value that this`Ref`object references to the given instance of`Object`.                                                                                                                                                            |

## Public methods

### getBaseTypeName

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract String getBaseTypeName ()
```

Retrieves the fully-qualified SQL name of the SQL structured type that this`Ref`object references.

<br />

|                                                                    Returns                                                                    ||
|--------------------------------------------------------------------|---------------------------------------------------------------------------|
| [String](https://developer.android.com/reference/java/lang/String) | the fully-qualified SQL name of the referenced SQL structured type <br /> |

|                                                                                Throws                                                                                ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if a database access error occurs               |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method |

### getObject

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getObject ()
```

Retrieves the SQL structured type instance referenced by this`Ref`object. If the connection's type map has an entry for the structured type, the instance will be custom mapped to the Java class indicated in the type map. Otherwise, the structured type instance will be mapped to a`Struct`object.

<br />

|                                                                                 Returns                                                                                  ||
|--------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | a Java`Object`that is the mapping for the SQL structured type to which this`Ref`object refers <br /> |

|                                                                                Throws                                                                                ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if a database access error occurs               |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method |

**See also:**

- [setObject(Object)](https://developer.android.com/reference/java/sql/Ref#setObject(java.lang.Object))  

### getObject

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract Object getObject (Map<String, Class<?>> map)
```

Retrieves the referenced object and maps it to a Java type using the given type map.

<br />

|                                                                                                                     Parameters                                                                                                                      ||
|-------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `map` | `Map`: a`java.util.Map`object that contains the mapping to use (the fully-qualified name of the SQL structured type being referenced and the class object for`SQLData`implementation to which the SQL structured type will be mapped) <br /> |

|                                                                                     Returns                                                                                     ||
|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
| [Object](https://developer.android.com/reference/java/lang/Object) | a Java`Object`that is the custom mapping for the SQL structured type to which this`Ref`object refers <br /> |

|                                                                                Throws                                                                                ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if a database access error occurs               |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method |

**See also:**

- [setObject(Object)](https://developer.android.com/reference/java/sql/Ref#setObject(java.lang.Object))  

### setObject

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public abstract void setObject (Object value)
```

Sets the structured type value that this`Ref`object references to the given instance of`Object`. The driver converts this to an SQL structured type when it sends it to the database.

<br />

|                                                      Parameters                                                       ||
|---------|--------------------------------------------------------------------------------------------------------------|
| `value` | `Object`: an`Object`representing the SQL structured type instance that this`Ref`object will reference <br /> |

|                                                                                Throws                                                                                ||
|---------------------------------------------------------------------------------------------------------------------|-------------------------------------------------|
| [SQLException](https://developer.android.com/reference/java/sql/SQLException)                                       | if a database access error occurs               |
| [SQLFeatureNotSupportedException](https://developer.android.com/reference/java/sql/SQLFeatureNotSupportedException) | if the JDBC driver does not support this method |

**See also:**

- [getObject()](https://developer.android.com/reference/java/sql/Ref#getObject())
- [getObject(Map)](https://developer.android.com/reference/java/sql/Ref#getObject(java.util.Map<java.lang.String,java.lang.Class<?>>))
- [PreparedStatement.setObject(int, Object)](https://developer.android.com/reference/java/sql/PreparedStatement#setObject(int,%20java.lang.Object))
- [CallableStatement.setObject(String, Object)](https://developer.android.com/reference/java/sql/CallableStatement#setObject(java.lang.String,%20java.lang.Object))