code: public synchronized void close() throws SQLException {
  
          if (isClosed) {
              return;
          }
          closeResultData();
  
          batchResultOut = null;
          connection     = null;
          resultIn       = null;
          resultOut      = null;
          isClosed       = true;
      }
docs: <!-- start generic documentation -->
  Releases this <code>Statement</code> object's database
  and JDBC resources immediately instead of waiting for
  this to happen when it is automatically closed.
  It is generally good practice to release resources as soon as
  you are finished with them to avoid tying up database
  resources.
  <P>
  Calling the method <code>close</code> on a <code>Statement</code>
  object that is already closed has no effect.
  <P>
  <B>Note:</B>When a <code>Statement</code> object is
  closed, its current <code>ResultSet</code> object, if one exists, is
  also closed.
  (JDBC4 deleted:) [A <code>Statement</code> object is
  automatically closed when it is garbage collected.]
  <!-- end generic documentation -->
  
  @exception SQLException if a database access error occurs