1. /*
  2. * @(#)PreparedStatement.java 1.28 00/02/02
  3. *
  4. * Copyright 1996-2000 Sun Microsystems, Inc. All Rights Reserved.
  5. *
  6. * This software is the proprietary information of Sun Microsystems, Inc.
  7. * Use is subject to license terms.
  8. *
  9. */
  10. package java.sql;
  11. import java.math.BigDecimal;
  12. import java.util.Calendar;
  13. /**
  14. * An object that represents a precompiled SQL statement.
  15. * <P>A SQL statement is precompiled and stored in a
  16. * <code>PreparedStatement</code> object. This object can then be used to
  17. * efficiently execute this statement multiple times.
  18. *
  19. * <P><B>Note:</B> The setXXX methods for setting IN parameter values
  20. * must specify types that are compatible with the defined SQL type of
  21. * the input parameter. For instance, if the IN parameter has SQL type
  22. * <code>Integer</code>, then the method <code>setInt</code> should be used.
  23. *
  24. * <p>If arbitrary parameter type conversions are required, the method
  25. * <code>setObject</code> should be used with a target SQL type.
  26. * <br>
  27. * Example of setting a parameter; <code>con</code> is an active connection
  28. * <pre><code>
  29. * PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES
  30. * SET SALARY = ? WHERE ID = ?");
  31. * pstmt.setBigDecimal(1, 153833.00)
  32. * pstmt.setInt(2, 110592)
  33. * </code></pre>
  34. *
  35. * @see Connection#prepareStatement
  36. * @see ResultSet
  37. * <P>
  38. * Some of the methods in this interface are new in the JDBC 2.0 API.
  39. */
  40. public interface PreparedStatement extends Statement {
  41. /**
  42. * Executes the SQL query in this <code>PreparedStatement</code> object
  43. * and returns the result set generated by the query.
  44. *
  45. * @return a <code>ResultSet</code> object that contains the data produced by the
  46. * query; never <code>null</code>
  47. * @exception SQLException if a database access error occurs
  48. */
  49. ResultSet executeQuery() throws SQLException;
  50. /**
  51. * Executes the SQL INSERT, UPDATE or DELETE statement
  52. * in this <code>PreparedStatement</code> object.
  53. * In addition,
  54. * SQL statements that return nothing, such as SQL DDL statements,
  55. * can be executed.
  56. *
  57. * @return either the row count for INSERT, UPDATE or DELETE statements;
  58. * or 0 for SQL statements that return nothing
  59. * @exception SQLException if a database access error occurs
  60. */
  61. int executeUpdate() throws SQLException;
  62. /**
  63. * Sets the designated parameter to SQL <code>NULL</code>.
  64. *
  65. * <P><B>Note:</B> You must specify the parameter's SQL type.
  66. *
  67. * @param parameterIndex the first parameter is 1, the second is 2, ...
  68. * @param sqlType the SQL type code defined in <code>java.sql.Types</code>
  69. * @exception SQLException if a database access error occurs
  70. */
  71. void setNull(int parameterIndex, int sqlType) throws SQLException;
  72. /**
  73. * Sets the designated parameter to a Java <code>boolean</code> value.
  74. * The driver converts this
  75. * to an SQL <code>BIT</code> value when it sends it to the database.
  76. *
  77. * @param parameterIndex the first parameter is 1, the second is 2, ...
  78. * @param x the parameter value
  79. * @exception SQLException if a database access error occurs
  80. */
  81. void setBoolean(int parameterIndex, boolean x) throws SQLException;
  82. /**
  83. * Sets the designated parameter to a Java <code>byte</code> value.
  84. * The driver converts this
  85. * to an SQL <code>TINYINT</code> value when it sends it to the database.
  86. *
  87. * @param parameterIndex the first parameter is 1, the second is 2, ...
  88. * @param x the parameter value
  89. * @exception SQLException if a database access error occurs
  90. */
  91. void setByte(int parameterIndex, byte x) throws SQLException;
  92. /**
  93. * Sets the designated parameter to a Java <code>short</code> value.
  94. * The driver converts this
  95. * to an SQL <code>SMALLINT</code> value when it sends it to the database.
  96. *
  97. * @param parameterIndex the first parameter is 1, the second is 2, ...
  98. * @param x the parameter value
  99. * @exception SQLException if a database access error occurs
  100. */
  101. void setShort(int parameterIndex, short x) throws SQLException;
  102. /**
  103. * Sets the designated parameter to a Java <code>int</code> value.
  104. * The driver converts this
  105. * to an SQL <code>INTEGER</code> value when it sends it to the database.
  106. *
  107. * @param parameterIndex the first parameter is 1, the second is 2, ...
  108. * @param x the parameter value
  109. * @exception SQLException if a database access error occurs
  110. */
  111. void setInt(int parameterIndex, int x) throws SQLException;
  112. /**
  113. * Sets the designated parameter to a Java <code>long</code> value.
  114. * The driver converts this
  115. * to an SQL <code>BIGINT</code> value when it sends it to the database.
  116. *
  117. * @param parameterIndex the first parameter is 1, the second is 2, ...
  118. * @param x the parameter value
  119. * @exception SQLException if a database access error occurs
  120. */
  121. void setLong(int parameterIndex, long x) throws SQLException;
  122. /**
  123. * Sets the designated parameter to a Java <code>float</code> value.
  124. * The driver converts this
  125. * to an SQL <code>FLOAT</code> value when it sends it to the database.
  126. *
  127. * @param parameterIndex the first parameter is 1, the second is 2, ...
  128. * @param x the parameter value
  129. * @exception SQLException if a database access error occurs
  130. */
  131. void setFloat(int parameterIndex, float x) throws SQLException;
  132. /**
  133. * Sets the designated parameter to a Java <code>double</code> value.
  134. * The driver converts this
  135. * to an SQL <code>DOUBLE</code> value when it sends it to the database.
  136. *
  137. * @param parameterIndex the first parameter is 1, the second is 2, ...
  138. * @param x the parameter value
  139. * @exception SQLException if a database access error occurs
  140. */
  141. void setDouble(int parameterIndex, double x) throws SQLException;
  142. /**
  143. * Sets the designated parameter to a <code>java.math.BigDecimal</code> value.
  144. * The driver converts this to an SQL <code>NUMERIC</code> value when
  145. * it sends it to the database.
  146. *
  147. * @param parameterIndex the first parameter is 1, the second is 2, ...
  148. * @param x the parameter value
  149. * @exception SQLException if a database access error occurs
  150. */
  151. void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException;
  152. /**
  153. * Sets the designated parameter to a Java <code>String</code> value.
  154. * The driver converts this
  155. * to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value
  156. * (depending on the argument's
  157. * size relative to the driver's limits on <code>VARCHAR</code> values)
  158. * when it sends it to the database.
  159. *
  160. * @param parameterIndex the first parameter is 1, the second is 2, ...
  161. * @param x the parameter value
  162. * @exception SQLException if a database access error occurs
  163. */
  164. void setString(int parameterIndex, String x) throws SQLException;
  165. /**
  166. * Sets the designated parameter to a Java array of bytes. The driver converts
  167. * this to an SQL <code>VARBINARY</code> or <code>LONGVARBINARY</code>
  168. * (depending on the argument's size relative to the driver's limits on
  169. * <code>VARBINARY</code> values) when it sends it to the database.
  170. *
  171. * @param parameterIndex the first parameter is 1, the second is 2, ...
  172. * @param x the parameter value
  173. * @exception SQLException if a database access error occurs
  174. */
  175. void setBytes(int parameterIndex, byte x[]) throws SQLException;
  176. /**
  177. * Sets the designated parameter to a <code<java.sql.Date</code> value.
  178. * The driver converts this
  179. * to an SQL <code>DATE</code> value when it sends it to the database.
  180. *
  181. * @param parameterIndex the first parameter is 1, the second is 2, ...
  182. * @param x the parameter value
  183. * @exception SQLException if a database access error occurs
  184. */
  185. void setDate(int parameterIndex, java.sql.Date x)
  186. throws SQLException;
  187. /**
  188. * Sets the designated parameter to a <code>java.sql.Time</code> value.
  189. * The driver converts this
  190. * to an SQL <code>TIME</code> value when it sends it to the database.
  191. *
  192. * @param parameterIndex the first parameter is 1, the second is 2, ...
  193. * @param x the parameter value
  194. * @exception SQLException if a database access error occurs
  195. */
  196. void setTime(int parameterIndex, java.sql.Time x)
  197. throws SQLException;
  198. /**
  199. * Sets the designated parameter to a <code>java.sql.Timestamp</code> value.
  200. * The driver
  201. * converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the
  202. * database.
  203. *
  204. * @param parameterIndex the first parameter is 1, the second is 2, ...
  205. * @param x the parameter value
  206. * @exception SQLException if a database access error occurs
  207. */
  208. void setTimestamp(int parameterIndex, java.sql.Timestamp x)
  209. throws SQLException;
  210. /**
  211. * Sets the designated parameter to the given input stream, which will have
  212. * the specified number of bytes.
  213. * When a very large ASCII value is input to a <code>LONGVARCHAR</code>
  214. * parameter, it may be more practical to send it via a
  215. * <code>java.io.InputStream</code>. Data will be read from the stream
  216. * as needed until end-of-file is reached. The JDBC driver will
  217. * do any necessary conversion from ASCII to the database char format.
  218. *
  219. * <P><B>Note:</B> This stream object can either be a standard
  220. * Java stream object or your own subclass that implements the
  221. * standard interface.
  222. *
  223. * @param parameterIndex the first parameter is 1, the second is 2, ...
  224. * @param x the Java input stream that contains the ASCII parameter value
  225. * @param length the number of bytes in the stream
  226. * @exception SQLException if a database access error occurs
  227. */
  228. void setAsciiStream(int parameterIndex, java.io.InputStream x, int length)
  229. throws SQLException;
  230. /**
  231. * Sets the designated parameter to the given input stream, which will have
  232. * the specified number of bytes.
  233. * When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
  234. * parameter, it may be more practical to send it via a
  235. * <code>java.io.InputStream</code> object. The data will be read from the stream
  236. * as needed until end-of-file is reached. The JDBC driver will
  237. * do any necessary conversion from UNICODE to the database char format.
  238. * The byte format of the Unicode stream must be Java UTF-8, as
  239. * defined in the Java Virtual Machine Specification.
  240. *
  241. * <P><B>Note:</B> This stream object can either be a standard
  242. * Java stream object or your own subclass that implements the
  243. * standard interface.
  244. *
  245. * @param parameterIndex the first parameter is 1, the second is 2, ...
  246. * @param x the java input stream which contains the
  247. * UNICODE parameter value
  248. * @param length the number of bytes in the stream
  249. * @exception SQLException if a database access error occurs
  250. * @deprecated
  251. */
  252. void setUnicodeStream(int parameterIndex, java.io.InputStream x,
  253. int length) throws SQLException;
  254. /**
  255. * Sets the designated parameter to the given input stream, which will have
  256. * the specified number of bytes.
  257. * When a very large binary value is input to a <code>LONGVARBINARY</code>
  258. * parameter, it may be more practical to send it via a
  259. * <code>java.io.InputStream</code> object. The data will be read from the stream
  260. * as needed until end-of-file is reached.
  261. *
  262. * <P><B>Note:</B> This stream object can either be a standard
  263. * Java stream object or your own subclass that implements the
  264. * standard interface.
  265. *
  266. * @param parameterIndex the first parameter is 1, the second is 2, ...
  267. * @param x the java input stream which contains the binary parameter value
  268. * @param length the number of bytes in the stream
  269. * @exception SQLException if a database access error occurs
  270. */
  271. void setBinaryStream(int parameterIndex, java.io.InputStream x,
  272. int length) throws SQLException;
  273. /**
  274. * Clears the current parameter values immediately.
  275. * <P>In general, parameter values remain in force for repeated use of a
  276. * statement. Setting a parameter value automatically clears its
  277. * previous value. However, in some cases it is useful to immediately
  278. * release the resources used by the current parameter values; this can
  279. * be done by calling the method <code>clearParameters</code>.
  280. *
  281. * @exception SQLException if a database access error occurs
  282. */
  283. void clearParameters() throws SQLException;
  284. //----------------------------------------------------------------------
  285. // Advanced features:
  286. /**
  287. * <p>Sets the value of the designated parameter with the given object. The second
  288. * argument must be an object type; for integral values, the
  289. * <code>java.lang</code> equivalent objects should be used.
  290. *
  291. * <p>The given Java object will be converted to the given targetSqlType
  292. * before being sent to the database.
  293. *
  294. * If the object has a custom mapping (is of a class implementing the
  295. * interface <code>SQLData</code>),
  296. * the JDBC driver should call the method <code>SQLData.writeSQL</code> to write it
  297. * to the SQL data stream.
  298. * If, on the other hand, the object is of a class implementing
  299. * Ref, Blob, Clob, Struct,
  300. * or Array, the driver should pass it to the database as a value of the
  301. * corresponding SQL type.
  302. *
  303. * <p>Note that this method may be used to pass datatabase-
  304. * specific abstract data types.
  305. *
  306. * @param parameterIndex the first parameter is 1, the second is 2, ...
  307. * @param x the object containing the input parameter value
  308. * @param targetSqlType the SQL type (as defined in java.sql.Types) to be
  309. * sent to the database. The scale argument may further qualify this type.
  310. * @param scale for java.sql.Types.DECIMAL or java.sql.Types.NUMERIC types,
  311. * this is the number of digits after the decimal point. For all other
  312. * types, this value will be ignored.
  313. * @exception SQLException if a database access error occurs
  314. * @see Types
  315. */
  316. void setObject(int parameterIndex, Object x, int targetSqlType, int scale)
  317. throws SQLException;
  318. /**
  319. * Sets the value of the designated parameter with the given object.
  320. * This method is like the method <code>setObject</code>
  321. * above, except that it assumes a scale of zero.
  322. *
  323. * @param parameterIndex the first parameter is 1, the second is 2, ...
  324. * @param x the object containing the input parameter value
  325. * @param targetSqlType the SQL type (as defined in java.sql.Types) to be
  326. * sent to the database
  327. * @exception SQLException if a database access error occurs
  328. */
  329. void setObject(int parameterIndex, Object x, int targetSqlType)
  330. throws SQLException;
  331. /**
  332. * <p>Sets the value of the designated parameter using the given object.
  333. * The second parameter must be of type <code>Object</code> therefore, the
  334. * <code>java.lang</code> equivalent objects should be used for built-in types.
  335. *
  336. * <p>The JDBC specification specifies a standard mapping from
  337. * Java <code>Object</code> types to SQL types. The given argument
  338. * will be converted to the corresponding SQL type before being
  339. * sent to the database.
  340. *
  341. * <p>Note that this method may be used to pass datatabase-
  342. * specific abstract data types, by using a driver-specific Java
  343. * type.
  344. *
  345. * If the object is of a class implementing the interface <code>SQLData</code>,
  346. * the JDBC driver should call the method <code>SQLData.writeSQL</code>
  347. * to write it to the SQL data stream.
  348. * If, on the other hand, the object is of a class implementing
  349. * Ref, Blob, Clob, Struct,
  350. * or Array, then the driver should pass it to the database as a value of the
  351. * corresponding SQL type.
  352. *
  353. * This method throws an exception if there is an ambiguity, for example, if the
  354. * object is of a class implementing more than one of the interfaces named above.
  355. *
  356. * @param parameterIndex the first parameter is 1, the second is 2, ...
  357. * @param x the object containing the input parameter value
  358. * @exception SQLException if a database access error occurs
  359. */
  360. void setObject(int parameterIndex, Object x) throws SQLException;
  361. /**
  362. * Executes any kind of SQL statement.
  363. * Some prepared statements return multiple results; the <code>execute</code>
  364. * method handles these complex statements as well as the simpler
  365. * form of statements handled by the methods <code>executeQuery</code>
  366. * and <code>executeUpdate</code>.
  367. *
  368. * @exception SQLException if a database access error occurs
  369. * @see Statement#execute
  370. */
  371. boolean execute() throws SQLException;
  372. //--------------------------JDBC 2.0-----------------------------
  373. /**
  374. * Adds a set of parameters to this <code>PreparedStatement</code>
  375. * object's batch of commands.
  376. *
  377. * @exception SQLException if a database access error occurs
  378. * @see Statement#addBatch
  379. * @since 1.2
  380. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  381. * 2.0 API</a>
  382. */
  383. void addBatch() throws SQLException;
  384. /**
  385. * Sets the designated parameter to the given <code>Reader</code>
  386. * object, which is the given number of characters long.
  387. * When a very large UNICODE value is input to a <code>LONGVARCHAR</code>
  388. * parameter, it may be more practical to send it via a
  389. * <code>java.io.Reader</code> object. The data will be read from the stream
  390. * as needed until end-of-file is reached. The JDBC driver will
  391. * do any necessary conversion from UNICODE to the database char format.
  392. *
  393. * <P><B>Note:</B> This stream object can either be a standard
  394. * Java stream object or your own subclass that implements the
  395. * standard interface.
  396. *
  397. * @param parameterIndex the first parameter is 1, the second is 2, ...
  398. * @param x the java reader which contains the UNICODE data
  399. * @param length the number of characters in the stream
  400. * @exception SQLException if a database access error occurs
  401. * @since 1.2
  402. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  403. * 2.0 API</a>
  404. */
  405. void setCharacterStream(int parameterIndex,
  406. java.io.Reader reader,
  407. int length) throws SQLException;
  408. /**
  409. * Sets the designated parameter to the given
  410. * <code>REF(<structured-type>)</code> value.
  411. *
  412. * @param i the first parameter is 1, the second is 2, ...
  413. * @param x an SQL <code>REF</code> value
  414. * @exception SQLException if a database access error occurs
  415. * @since 1.2
  416. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  417. * 2.0 API</a>
  418. */
  419. void setRef (int i, Ref x) throws SQLException;
  420. /**
  421. * Sets the designated parameter to the given
  422. * <code>Blob</code> object.
  423. *
  424. * @param i the first parameter is 1, the second is 2, ...
  425. * @param x a <code>Blob</code> object that maps an SQL <code>BLOB</code> value
  426. * @exception SQLException if a database access error occurs
  427. * @since 1.2
  428. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  429. * 2.0 API</a>
  430. */
  431. void setBlob (int i, Blob x) throws SQLException;
  432. /**
  433. * Sets the designated parameter to the given
  434. * <code>Clob</code> object.
  435. *
  436. * @param i the first parameter is 1, the second is 2, ...
  437. * @param x a <code>Clob</code> object that maps an SQL <code>CLOB</code> value
  438. * @exception SQLException if a database access error occurs
  439. * @since 1.2
  440. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  441. * 2.0 API</a>
  442. */
  443. void setClob (int i, Clob x) throws SQLException;
  444. /**
  445. * Sets the designated parameter to the given
  446. * <code>Array</code> object.
  447. * Sets an Array parameter.
  448. *
  449. * @param i the first parameter is 1, the second is 2, ...
  450. * @param x an <code>Array</code> object that maps an SQL <code>ARRAY</code> value
  451. * @exception SQLException if a database access error occurs
  452. * @since 1.2
  453. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  454. * 2.0 API</a>
  455. */
  456. void setArray (int i, Array x) throws SQLException;
  457. /**
  458. * Gets the number, types and properties of a <code>ResultSet</code>
  459. * object's columns.
  460. *
  461. * @return the description of a <code>ResultSet</code> object's columns
  462. * @exception SQLException if a database access error occurs
  463. * @since 1.2
  464. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  465. * 2.0 API</a>
  466. */
  467. ResultSetMetaData getMetaData() throws SQLException;
  468. /**
  469. * Sets the designated parameter to the given <code>java.sql.Date</code> value,
  470. * using the given <code>Calendar</code> object. The driver uses
  471. * the <code>Calendar</code> object to construct an SQL <code>DATE</code> value,
  472. * which the driver then sends to the database. With a
  473. * a <code>Calendar</code> object, the driver can calculate the date
  474. * taking into account a custom timezone. If no
  475. * <code>Calendar</code> object is specified, the driver uses the default
  476. * timezone, which is that of the virtual machine running the application.
  477. *
  478. * @param parameterIndex the first parameter is 1, the second is 2, ...
  479. * @param x the parameter value
  480. * @param cal the <code>Calendar</code> object the driver will use
  481. * to construct the date
  482. * @exception SQLException if a database access error occurs
  483. * @since 1.2
  484. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  485. * 2.0 API</a>
  486. */
  487. void setDate(int parameterIndex, java.sql.Date x, Calendar cal)
  488. throws SQLException;
  489. /**
  490. * Sets the designated parameter to the given <code>java.sql.Time</code> value,
  491. * using the given <code>Calendar</code> object. The driver uses
  492. * the <code>Calendar</code> object to construct an SQL <code>TIME</code> value,
  493. * which the driver then sends to the database. With a
  494. * a <code>Calendar</code> object, the driver can calculate the time
  495. * taking into account a custom timezone. If no
  496. * <code>Calendar</code> object is specified, the driver uses the default
  497. * timezone, which is that of the virtual machine running the application.
  498. *
  499. * @param parameterIndex the first parameter is 1, the second is 2, ...
  500. * @param x the parameter value
  501. * @param cal the <code>Calendar</code> object the driver will use
  502. * to construct the time
  503. * @exception SQLException if a database access error occurs
  504. * @since 1.2
  505. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  506. * 2.0 API</a>
  507. */
  508. void setTime(int parameterIndex, java.sql.Time x, Calendar cal)
  509. throws SQLException;
  510. /**
  511. * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value,
  512. * using the given <code>Calendar</code> object. The driver uses
  513. * the <code>Calendar</code> object to construct an SQL <code>TIMESTAMP</code> value,
  514. * which the driver then sends to the database. With a
  515. * a <code>Calendar</code> object, the driver can calculate the timestamp
  516. * taking into account a custom timezone. If no
  517. * <code>Calendar</code> object is specified, the driver uses the default
  518. * timezone, which is that of the virtual machine running the application.
  519. *
  520. * @param parameterIndex the first parameter is 1, the second is 2, ...
  521. * @param x the parameter value
  522. * @param cal the <code>Calendar</code> object the driver will use
  523. * to construct the timestamp
  524. * @exception SQLException if a database access error occurs
  525. * @since 1.2
  526. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  527. * 2.0 API</a>
  528. */
  529. void setTimestamp(int parameterIndex, java.sql.Timestamp x, Calendar cal)
  530. throws SQLException;
  531. /**
  532. * Sets the designated parameter to SQL <code>NULL</code>.
  533. * This version of the method <code>setNull</code> should
  534. * be used for user-defined types and REF type parameters. Examples
  535. * of user-defined types include: STRUCT, DISTINCT, JAVA_OBJECT, and
  536. * named array types.
  537. *
  538. * <P><B>Note:</B> To be portable, applications must give the
  539. * SQL type code and the fully-qualified SQL type name when specifying
  540. * a NULL user-defined or REF parameter. In the case of a user-defined type
  541. * the name is the type name of the parameter itself. For a REF
  542. * parameter, the name is the type name of the referenced type. If
  543. * a JDBC driver does not need the type code or type name information,
  544. * it may ignore it.
  545. *
  546. * Although it is intended for user-defined and Ref parameters,
  547. * this method may be used to set a null parameter of any JDBC type.
  548. * If the parameter does not have a user-defined or REF type, the given
  549. * typeName is ignored.
  550. *
  551. *
  552. * @param parameterIndex the first parameter is 1, the second is 2, ...
  553. * @param sqlType a value from <code>java.sql.Types</code>
  554. * @param typeName the fully-qualified name of an SQL user-defined type;
  555. * ignored if the parameter is not a user-defined type or REF
  556. * @exception SQLException if a database access error occurs
  557. * @since 1.2
  558. * @see <a href="package-summary.html#2.0 API">What Is in the JDBC
  559. * 2.0 API</a>
  560. */
  561. void setNull (int paramIndex, int sqlType, String typeName)
  562. throws SQLException;
  563. }