public synchronized Statement createStatement() throws SQLException {

        checkClosed();

        Statement stmt = new JDBCStatement(this,
            JDBCResultSet.TYPE_FORWARD_ONLY, JDBCResultSet.CONCUR_READ_ONLY,
            rsHoldability);

        return stmt;
    }
public synchronized Statement createStatement ( ) throws SQLException { checkClosed ( ) ; Statement stmt = new JDBCStatement ( this , JDBCResultSet . TYPE_FORWARD_ONLY , JDBCResultSet . CONCUR_READ_ONLY , rsHoldability ) ; return stmt ; }
<!-- start generic documentation -->

Creates a <code>Statement</code> object for sending
SQL statements to the database.
SQL statements without parameters are normally
executed using <code>Statement</code> objects. If the same SQL statement
is executed many times, it may be more efficient to use a
<code>PreparedStatement</code> object.
<P>
Result sets created using the returned <code>Statement</code>
object will by default be type <code>TYPE_FORWARD_ONLY</code>
and have a concurrency level of <code>CONCUR_READ_ONLY</code>.
The holdability of the created result sets can be determined by
calling {@link #getHoldability}.

<!-- end generic documentation -->
<!-- start release-specific documentation -->
<div class="ReleaseSpecificDocumentation">
<h3>HSQLDB-Specific Information:</h3> <p>

Starting with HSQLDB 1.7.2, support for precompilation at the engine level
has been implemented, so it is now much more efficient and performant
to use a <code>PreparedStatement</code> object if the same short-running
SQL statement is to be executed many times. <p>

HSQLDB supports <code>TYPE_FORWARD_ONLY</code>,
<code>TYPE_SCROLL_INSENSITIVE</code> and <code>CONCUR_READ_ONLY</code>
results. <p>

</div> <!-- end release-specific documentation -->

@return a new default <code>Statement</code> object
@exception SQLException if a database access error occurs
(JDBC4 clarification:)
or this method is called on a closed connection
@see #createStatement(int,int)
@see #createStatement(int,int,int)