📄 preparedstatement.java
字号:
/* * @(#)PreparedStatement.java 1.42 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package java.sql;import java.math.BigDecimal;import java.util.Calendar;/** * An object that represents a precompiled SQL statement. * <P>A SQL statement is precompiled and stored in a * <code>PreparedStatement</code> object. This object can then be used to * efficiently execute this statement multiple times. * * <P><B>Note:</B> The setter methods (<code>setShort</code>, <code>setString</code>, * and so on) for setting IN parameter values * must specify types that are compatible with the defined SQL type of * the input parameter. For instance, if the IN parameter has SQL type * <code>INTEGER</code>, then the method <code>setInt</code> should be used. * * <p>If arbitrary parameter type conversions are required, the method * <code>setObject</code> should be used with a target SQL type. * <P> * In the following example of setting a parameter, <code>con</code> represents * an active connection: * <PRE> * PreparedStatement pstmt = con.prepareStatement("UPDATE EMPLOYEES * SET SALARY = ? WHERE ID = ?"); * pstmt.setBigDecimal(1, 153833.00) * pstmt.setInt(2, 110592) * </PRE> * * @see Connection#prepareStatement * @see ResultSet */public interface PreparedStatement extends Statement { /** * Executes the SQL query in this <code>PreparedStatement</code> object * and returns the <code>ResultSet</code> object generated by the query. * * @return a <code>ResultSet</code> object that contains the data produced by the * query; never <code>null</code> * @exception SQLException if a database access error occurs or the SQL * statement does not return a <code>ResultSet</code> object */ ResultSet executeQuery() throws SQLException; /** * Executes the SQL statement in this <code>PreparedStatement</code> object, * which must be an SQL <code>INSERT</code>, <code>UPDATE</code> or * <code>DELETE</code> statement; or an SQL statement that returns nothing, * such as a DDL statement. * * @return either (1) the row count for <code>INSERT</code>, <code>UPDATE</code>, * or <code>DELETE</code> statements * or (2) 0 for SQL statements that return nothing * @exception SQLException if a database access error occurs or the SQL * statement returns a <code>ResultSet</code> object */ int executeUpdate() throws SQLException; /** * Sets the designated parameter to SQL <code>NULL</code>. * * <P><B>Note:</B> You must specify the parameter's SQL type. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param sqlType the SQL type code defined in <code>java.sql.Types</code> * @exception SQLException if a database access error occurs */ void setNull(int parameterIndex, int sqlType) throws SQLException; /** * Sets the designated parameter to the given Java <code>boolean</code> value. * The driver converts this * to an SQL <code>BIT</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setBoolean(int parameterIndex, boolean x) throws SQLException; /** * Sets the designated parameter to the given Java <code>byte</code> value. * The driver converts this * to an SQL <code>TINYINT</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setByte(int parameterIndex, byte x) throws SQLException; /** * Sets the designated parameter to the given Java <code>short</code> value. * The driver converts this * to an SQL <code>SMALLINT</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setShort(int parameterIndex, short x) throws SQLException; /** * Sets the designated parameter to the given Java <code>int</code> value. * The driver converts this * to an SQL <code>INTEGER</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setInt(int parameterIndex, int x) throws SQLException; /** * Sets the designated parameter to the given Java <code>long</code> value. * The driver converts this * to an SQL <code>BIGINT</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setLong(int parameterIndex, long x) throws SQLException; /** * Sets the designated parameter to the given Java <code>float</code> value. * The driver converts this * to an SQL <code>FLOAT</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setFloat(int parameterIndex, float x) throws SQLException; /** * Sets the designated parameter to the given Java <code>double</code> value. * The driver converts this * to an SQL <code>DOUBLE</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setDouble(int parameterIndex, double x) throws SQLException; /** * Sets the designated parameter to the given <code>java.math.BigDecimal</code> value. * The driver converts this to an SQL <code>NUMERIC</code> value when * it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException; /** * Sets the designated parameter to the given Java <code>String</code> value. * The driver converts this * to an SQL <code>VARCHAR</code> or <code>LONGVARCHAR</code> value * (depending on the argument's * size relative to the driver's limits on <code>VARCHAR</code> values) * when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setString(int parameterIndex, String x) throws SQLException; /** * Sets the designated parameter to the given Java array of bytes. The driver converts * this to an SQL <code>VARBINARY</code> or <code>LONGVARBINARY</code> * (depending on the argument's size relative to the driver's limits on * <code>VARBINARY</code> values) when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setBytes(int parameterIndex, byte x[]) throws SQLException; /** * Sets the designated parameter to the given <code>java.sql.Date</code> value. * The driver converts this * to an SQL <code>DATE</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setDate(int parameterIndex, java.sql.Date x) throws SQLException; /** * Sets the designated parameter to the given <code>java.sql.Time</code> value. * The driver converts this * to an SQL <code>TIME</code> value when it sends it to the database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setTime(int parameterIndex, java.sql.Time x) throws SQLException; /** * Sets the designated parameter to the given <code>java.sql.Timestamp</code> value. * The driver * converts this to an SQL <code>TIMESTAMP</code> value when it sends it to the * database. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the parameter value * @exception SQLException if a database access error occurs */ void setTimestamp(int parameterIndex, java.sql.Timestamp x) throws SQLException; /** * Sets the designated parameter to the given input stream, which will have * the specified number of bytes. * When a very large ASCII value is input to a <code>LONGVARCHAR</code> * parameter, it may be more practical to send it via a * <code>java.io.InputStream</code>. Data will be read from the stream * as needed until end-of-file is reached. The JDBC driver will * do any necessary conversion from ASCII to the database char format. * * <P><B>Note:</B> This stream object can either be a standard * Java stream object or your own subclass that implements the * standard interface. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the Java input stream that contains the ASCII parameter value * @param length the number of bytes in the stream * @exception SQLException if a database access error occurs */ void setAsciiStream(int parameterIndex, java.io.InputStream x, int length) throws SQLException; /** * Sets the designated parameter to the given input stream, which * will have the specified number of bytes. A Unicode character has * two bytes, with the first byte being the high byte, and the second * being the low byte. * * When a very large Unicode value is input to a <code>LONGVARCHAR</code> * parameter, it may be more practical to send it via a * <code>java.io.InputStream</code> object. The data will be read from the * stream as needed until end-of-file is reached. The JDBC driver will * do any necessary conversion from Unicode to the database char format. * * <P><B>Note:</B> This stream object can either be a standard * Java stream object or your own subclass that implements the * standard interface. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x a <code>java.io.InputStream</code> object that contains the * Unicode parameter value as two-byte Unicode characters * @param length the number of bytes in the stream * @exception SQLException if a database access error occurs * @deprecated */ void setUnicodeStream(int parameterIndex, java.io.InputStream x, int length) throws SQLException; /** * Sets the designated parameter to the given input stream, which will have * the specified number of bytes. * When a very large binary value is input to a <code>LONGVARBINARY</code> * parameter, it may be more practical to send it via a * <code>java.io.InputStream</code> object. The data will be read from the * stream as needed until end-of-file is reached. * * <P><B>Note:</B> This stream object can either be a standard * Java stream object or your own subclass that implements the * standard interface. * * @param parameterIndex the first parameter is 1, the second is 2, ... * @param x the java input stream which contains the binary parameter value * @param length the number of bytes in the stream * @exception SQLException if a database access error occurs */ void setBinaryStream(int parameterIndex, java.io.InputStream x, int length) throws SQLException; /** * Clears the current parameter values immediately. * <P>In general, parameter values remain in force for repeated use of a * statement. Setting a parameter value automatically clears its * previous value. However, in some cases it is useful to immediately * release the resources used by the current parameter values; this can * be done by calling the method <code>clearParameters</code>. * * @exception SQLException if a database access error occurs */ void clearParameters() throws SQLException; //---------------------------------------------------------------------- // Advanced features: /** * <p>Sets the value of the designated parameter with the given object. The second * argument must be an object type; for integral values, the * <code>java.lang</code> equivalent objects should be used. * * <p>The given Java object will be converted to the given targetSqlType * before being sent to the database. * * If the object has a custom mapping (is of a class implementing the * interface <code>SQLData</code>), * the JDBC driver should call the method <code>SQLData.writeSQL</code> to * write it to the SQL data stream. * If, on the other hand, the object is of a class implementing
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -