|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mondrian.rolap.SqlStatement
public class SqlStatement
SqlStatement contains a SQL statement and associated resources throughout its lifetime.
The goal of SqlStatement is to make tracing, error-handling and
resource-management easier. None of the methods throws a SQLException;
if an error occurs in one of the methods, the method wraps the exception
in a RuntimeException
describing the high-level operation, logs
that the operation failed, and throws that RuntimeException.
If methods succeed, the method generates lifecycle logging such as the elapsed time and number of rows fetched.
There are a few obligations on the caller. The caller must:
handle(Exception)
method if one of the contained
objects (say the ResultSet
) gives an error;
close()
method if all operations complete
successfully.
rowCount
field each time a row is fetched.
The close()
method is idempotent. You are welcome to call it
more than once.
SqlStatement is not thread-safe.
Field Summary | |
---|---|
int |
rowCount
|
Constructor Summary | |
---|---|
SqlStatement(DataSource dataSource,
String sql,
int maxRows,
String component,
String message,
int resultSetType,
int resultSetConcurrency)
|
Method Summary | |
---|---|
void |
close()
Closes all resources (statement, result set) held by this SqlStatement. |
void |
execute()
|
ResultSet |
getResultSet()
|
RuntimeException |
handle(Exception e)
Handles an exception thrown from the ResultSet, implicitly calls close() , and returns an exception which includes the full
stack, including a description of the high-level operation. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public int rowCount
Constructor Detail |
---|
SqlStatement(DataSource dataSource, String sql, int maxRows, String component, String message, int resultSetType, int resultSetConcurrency)
Method Detail |
---|
public void execute() throws SQLException
SQLException
public void close()
If any of them fails, wraps them in a
RuntimeException
describing the high-level operation which
this statement was performing. No further error-handling is required
to produce a descriptive stack trace, unless you want to absorb the
error.
public ResultSet getResultSet()
public RuntimeException handle(Exception e)
close()
, and returns an exception which includes the full
stack, including a description of the high-level operation.
e
- Exception
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |