def prepare(qstr)
    check_closed

    pstmt = PreparedStatement.send(:new, self, qstr, @conn.prepare_statement(qstr))
    pstmt.set_fetch_size @fetch_size if @fetch_size

    @pstmts << pstmt
    pstmt
  end
def prepare(qstr)
    check_closed

    pstmt = PreparedStatement.send(:new, self, qstr, @conn.prepare_statement(qstr))
    pstmt.set_fetch_size @fetch_size if @fetch_size

    @pstmts << pstmt
    pstmt
  end
Creates a database connection.
 - `args` hash must include :driver (or "driver") and :url (or "url")
 - and takes optional :user and :password tuples (or "user", "password")
 - You can also specify :timeout (or "timeout") to override the default connection timeout (60 seconds)

 Must be closed explicitly if not used.
 If a block is given, the connection is automatically closed after executing the block.
 @param [Hash] args
 Creates another connection with the same parameters as this Connection.
 @return [JDBCHelper::Connection]
 Creates a prepared statement, which is also an encapsulation of Java PreparedStatement object
 @param [String] qstr SQL string