📄 jdbcstatement.java
字号:
/**
* <!-- start generic documentation -->
* Retrieves the current result as a <code>ResultSet</code> object.
* This method should be called only once per result. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Without an interceding call to executeXXX, each invocation of this
* method will produce a new, initialized ResultSet instance referring to
* the current result, if any.
* </div>
* <!-- end release-specific documentation -->
*
* @return the current result as a <code>ResultSet</code> object or
* <code>null</code> if the result is an update count or there
* are no more results
* @exception SQLException if a database access error occurs
* @see #execute
*/
public ResultSet getResultSet() throws SQLException {
checkClosed();
return resultIn == null || resultIn.mode != ResultConstants.DATA
? null
: new jdbcResultSet(this, resultIn, connection.connProperties,
connection.isNetConn);
}
/**
* <!-- start generic documentation -->
* Retrieves the current result as an update count;
* if the result is a <code>ResultSet</code> object or there are no more results, -1
* is returned. This method should be called only once per result. <p>
* <!-- end generic documentation -->
*
* @return the current result as an update count; -1 if the current result is a
* <code>ResultSet</code> object or there are no more results
* @exception SQLException if a database access error occurs
* @see #execute
*/
public int getUpdateCount() throws SQLException {
// fredt - omit checkClosed() in order to be able to handle the result of a
// SHUTDOWN query
// checkClosed();
return (resultIn == null || resultIn.mode == ResultConstants.DATA)
? -1
: resultIn.getUpdateCount();
}
/**
* <!-- start generic documentation -->
* Moves to this <code>Statement</code> object's next result, returns
* <code>true</code> if it is a <code>ResultSet</code> object, and
* implicitly closes any current <code>ResultSet</code>
* object(s) obtained with the method <code>getResultSet</code>.
*
* <P>There are no more results when the following is true:
* <PRE>
* <code>(!getMoreResults() && (getUpdateCount() == -1)</code>
* </PRE> <p>
* <!-- end generic documentation -->
*
* @return <code>true</code> if the next result is a <code>ResultSet</code>
* object; <code>false</code> if it is an update count or there are
* no more results
* @exception SQLException if a database access error occurs
* @see #execute
*/
public boolean getMoreResults() throws SQLException {
checkClosed();
resultIn = null;
return false;
}
//--------------------------JDBC 2.0-----------------------------
/**
* <!-- start generic documentation -->
* Gives the driver a hint as to the direction in which
* rows will be processed in <code>ResultSet</code>
* objects created using this <code>Statement</code> object. The
* default value is <code>ResultSet.FETCH_FORWARD</code>.
* <P>
* Note that this method sets the default fetch direction for
* result sets generated by this <code>Statement</code> object.
* Each result set has its own methods for getting and setting
* its own fetch direction. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Including 1.7.2, HSQLDB supports only <code>FETCH_FORWARD</code>. <p>
*
* Setting any other value will throw an <code>SQLException</code>
* stating that the operation is not supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param direction the initial direction for processing rows
* @exception SQLException if a database access error occurs
* or the given direction
* is not one of <code>ResultSet.FETCH_FORWARD</code>,
* <code>ResultSet.FETCH_REVERSE</code>, or
* <code>ResultSet.FETCH_UNKNOWN</code> <p>
*
* HSQLDB throws for all values except <code>FETCH_FORWARD</code>
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
* @see #getFetchDirection
*/
public void setFetchDirection(int direction) throws SQLException {
checkClosed();
if (direction != jdbcResultSet.FETCH_FORWARD) {
throw Util.notSupported;
}
}
/**
* <!-- start generic documentation -->
* Retrieves the direction for fetching rows from
* database tables that is the default for result sets
* generated from this <code>Statement</code> object.
* If this <code>Statement</code> object has not set
* a fetch direction by calling the method <code>setFetchDirection</code>,
* the return value is implementation-specific. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Including 1.7.2, HSQLDB always returns FETCH_FORWARD.
* </div>
* <!-- end release-specific documentation -->
*
* @return the default fetch direction for result sets generated
* from this <code>Statement</code> object
* @exception SQLException if a database access error occurs
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
* @see #setFetchDirection
*/
public int getFetchDirection() throws SQLException {
checkClosed();
return jdbcResultSet.FETCH_FORWARD;
}
/**
* <!-- start generic documentation -->
* Gives the JDBC driver a hint as to the number of rows that should
* be fetched from the database when more rows are needed. The number
* of rows specified affects only result sets created using this
* statement. If the value specified is zero, then the hint is ignored.
* The default value is zero. <p>
* <!-- start generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Including 1.7.2, calls to this method are ignored;
* HSQLDB fetches each result completely as part of
* executing its statement.
* </div>
* <!-- end release-specific documentation -->
*
* @param rows the number of rows to fetch
* @exception SQLException if a database access error occurs, or the
* condition 0 <= <code>rows</code> <= <code>this.getMaxRows()</code>
* is not satisfied. <p>
*
* HSQLDB never throws an exception, since calls to this method
* are always ignored.
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
* @see #getFetchSize
*/
public void setFetchSize(int rows) throws SQLException {
checkClosed();
}
/**
* <!-- start generic documentation -->
* Retrieves the number of result set rows that is the default
* fetch size for <code>ResultSet</code> objects
* generated from this <code>Statement</code> object.
* If this <code>Statement</code> object has not set
* a fetch size by calling the method <code>setFetchSize</code>,
* the return value is implementation-specific. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <b>HSQLDB-Specific Information</b> <p>
*
* Including 1.7.2, this method always returns 0.
* HSQLDB fetches each result completely as part of
* executing its statement
* </div>
* <!-- end release-specific documentation -->
*
* @return the default fetch size for result sets generated
* from this <code>Statement</code> object
* @exception SQLException if a database access error occurs
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
* @see #setFetchSize
*/
public int getFetchSize() throws SQLException {
checkClosed();
return 0;
}
/**
* <!-- start generic documentation -->
* Retrieves the result set concurrency for <code>ResultSet</code> objects
* generated by this <code>Statement</code> object. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Including 1.7.2, HSQLDB supports only
* <code>CONCUR_READ_ONLY</code> concurrency.
* </div>
* <!-- end release-specific documentation -->
*
* @return either <code>ResultSet.CONCUR_READ_ONLY</code> or
* <code>ResultSet.CONCUR_UPDATABLE</code> (not supported)
* @exception SQLException if a database access error occurs
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
*/
public int getResultSetConcurrency() throws SQLException {
checkClosed();
return jdbcResultSet.CONCUR_READ_ONLY;
}
/**
* <!-- start generic documentation -->
* Retrieves the result set type for <code>ResultSet</code> objects
* generated by this <code>Statement</code> object. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* HSQLDB 1.7.0 and later versions support <code>TYPE_FORWARD_ONLY</code>
* and <code>TYPE_SCROLL_INSENSITIVE</code>.
* </div>
* <!-- end release-specific documentation -->
*
* @return one of <code>ResultSet.TYPE_FORWARD_ONLY</code>,
* <code>ResultSet.TYPE_SCROLL_INSENSITIVE</code>, or
* <code>ResultSet.TYPE_SCROLL_SENSITIVE</code> (not supported) <p>
*
* <b>Note:</b> Up to and including 1.7.1, HSQLDB never returns
* <code>TYPE_SCROLL_SENSITIVE</code>
* @exception SQLException if a database access error occurs
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
*/
public int getResultSetType() throws SQLException {
// fredt - omit checkClosed() in order to be able to handle the result of a
// SHUTDOWN query
// checkClosed();
return rsType;
}
/**
* <!-- start generic documentation -->
* Adds the given SQL command to the current list of commmands for this
* <code>Statement</code> object. The commands in this list can be
* executed as a batch by calling the method <code>executeBatch</code>.
* <P>
* <B>NOTE:</B> This method is optional. <p>
* <!-- end generic documentation -->
*
* <!-- start release-specific documentation -->
* <div class="ReleaseSpecificDocumentation">
* <h3>HSQLDB-Specific Information:</h3> <p>
*
* Starting with 1.7.2, this feature is supported.
* </div>
* <!-- end release-specific documentation -->
*
* @param sql typically this is a static SQL <code>INSERT</code> or
* <code>UPDATE</code> statement
* @exception SQLException if a database access error occurs, or the
* driver does not support batch updates
* @see #executeBatch
* @since JDK 1.2 (JDK 1.1.x developers: read the new overview
* for jdbcStatement)
*/
public void addBatch(String sql) throws SQLException {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -