Sets the value of the designated parameter using the given object.
The second parameter must be of type Object
; therefore, the
java.lang
equivalent objects should be used for built-in types.
The JDBC specification specifies a standard mapping from
Java Object
types to SQL types. The given argument
will be converted to the corresponding SQL type before being
sent to the database.
Note that this method may be used to pass datatabase-
specific abstract data types, by using a driver-specific Java
type.
If the object is of a class implementing the interface SQLData
,
the JDBC driver should call the method SQLData.writeSQL
to write it to the SQL data stream.
If, on the other hand, the object is of a class implementing
Ref
, Blob
, Clob
, NClob
,
Struct
, java.net.URL
, RowId
, SQLXML
or Array
, the driver should pass it to the database as a
value of the corresponding SQL type.
Note: Not all databases allow for a non-typed Null to be sent to
the backend. For maximum portability, the setNull
or the
setObject(int parameterIndex, Object x, int sqlType)
method should be used
instead of setObject(int parameterIndex, Object x)
.
Note: This method throws an exception if there is an ambiguity, for example, if the
object is of a class implementing more than one of the interfaces named above.
Parameters:
- parameterIndex - the first parameter is 1, the second is 2, ...
- x - the object containing the input parameter value
Throws:
- SQLException - if parameterIndex does not correspond to a parameter
marker in the SQL statement; if a database access error occurs;
this method is called on a closed PreparedStatement
or the type of the given object is ambiguous