public class StatementWrapper
extends java.lang.Object
AbstractDatabase.cancelStatement()
.final Database db = ... final String stmt = ... final StatementWrapper wrap = new StatementWrapper( db, stmt ); boolean success = false; try { success = wrap.execute(); } catch( DBException dbe ) { // process exception }
Modifier and Type | Class and Description |
---|---|
static class |
StatementWrapper.ExecutionProxy
Allows a proxy to be registered against all queries to wrap the execution
of any sql against the database.
|
class |
StatementWrapper.ExecutionRunnable<T>
Runnable implementation that wraps the execution of a statement or query.
|
static interface |
StatementWrapper.Listener
Listner interface to be implemented by anything interested in knowing when
the API is talking to a database.
|
Modifier | Constructor and Description |
---|---|
protected |
StatementWrapper(Database db,
boolean reconnectFirst,
java.lang.String... statements)
Creates a new wrapper for executing statements against the given Database.
|
|
StatementWrapper(Database db,
java.lang.String... statements)
Creates a new StatementWrapper for executing the given statements against
a Database.
|
|
StatementWrapper(java.lang.String connName,
java.sql.Connection connection,
java.lang.String... statements)
Creates a new StatementWRapper using a specific connection object.
|
Modifier and Type | Method and Description |
---|---|
static void |
addListener(StatementWrapper.Listener l)
Adds a query listener to be notified whenever the db is queried.
|
void |
close()
Closes the statement and result set if we got that far.
|
protected static DBSQLException |
createDBSQLException(Database db,
DBObject obj,
java.lang.String text,
java.sql.SQLException sqe)
Creates a DBSQLException to wrap the encountered SQLException.
|
protected DBSQLException |
createDBSQLException(DBObject obj,
java.lang.String text,
java.sql.SQLException sqe)
Creates a DBSQLException to wrapthe encountered SQLException.
|
protected java.sql.Statement |
createStatment()
Creates the Statement object to use.
|
protected <T> T |
doExecute(StatementWrapper.ExecutionRunnable<T> r) |
boolean |
execute()
Executes the statment against the database.
|
protected boolean |
executeImpl(java.lang.String stmt) |
protected java.sql.Connection |
getConnection() |
protected java.lang.String |
getConnectionName() |
protected Database |
getDatabase()
Returns the Database that this wrapper is executing on.
|
static StatementWrapper.ExecutionProxy |
getExecutionProxy()
Gets the execution proxy for statement execution (if one is set).
|
java.lang.String |
getIdentifier()
Gets the identifier for this statement wrapper.
|
protected java.sql.Statement |
getStatement()
Gets the Statement object for this wrapper.
|
protected java.lang.String[] |
getStatementStrings()
Returns all the statement strings to be executed.
|
java.lang.String |
getStatementTextForLog()
For logging and exception handling.
|
protected boolean |
hasCancelled(java.sql.SQLException sqe) |
protected boolean |
isIgnoreErrors() |
protected void |
queryFinished() |
protected void |
queryStarted() |
static boolean |
removeListener(StatementWrapper.Listener l)
Removes a query listener.
|
void |
setBypassExecutionProxy(boolean doNotThread)
Explicitly disables the threading of this query using an execution proxy.
|
protected void |
setDatabase(Database db)
Sets the wrappers database.
|
protected void |
setExecuting(boolean executing)
Indicates that this wrapper is in the process of executing.
|
static void |
setExecutionProxy(StatementWrapper.ExecutionProxy ep)
Sets the execution proxy for all queries in the API.
|
void |
setIdentifier(java.lang.String i)
Sets the identifier for this query wrapper.
|
void |
setIgnoreErrors(boolean ignore) |
void |
setStatement(java.lang.String... statements)
Only works after construction for simple statements, not queries (i.e.
|
protected void |
sqlTrace(java.lang.String dbName,
java.lang.String query,
java.lang.Object... params)
Sets up the query log which will be output when the query has finished
(complete with timing information).
|
static void |
throwCancelledException()
Throws a CancelledException with a message that the statement has been
cancelled.
|
void |
throwDBException(DBObject obj,
java.sql.SQLException sqe)
If a SQLException is caught during the processing of this query, or its
Difference then it can be wrapped in a DBException which can then be
displayed to the user.
|
protected void |
throwDBException(DBObject obj,
java.lang.String text,
java.sql.SQLException sqe)
Throws a DBException to wrap a caught SQLException during statement
execution.
|
void |
throwDBException(java.sql.SQLException sqe)
If a SQLException is caught during the processing of this query, or its
Difference then it can be wrapped in a DBException which can then be
displayed to the user.
|
public StatementWrapper(java.lang.String connName, java.sql.Connection connection, java.lang.String... statements)
connName
- the name of the connection (used for logging)connection
- the connection to execute the statement(s) againststatements
- the statement(s) to executepublic StatementWrapper(Database db, java.lang.String... statements)
db
- the Database to execute the statements againststatements
- the statement(s) to executeprotected StatementWrapper(Database db, boolean reconnectFirst, java.lang.String... statements)
db
- the Database to execute the statements againstreconnectFirst
- whether to specifically check the connectivity of the
connection up-front.statements
- the statement(s) to executepublic void setStatement(java.lang.String... statements)
protected final java.lang.String[] getStatementStrings()
public java.lang.String getStatementTextForLog()
protected final java.sql.Statement getStatement() throws java.sql.SQLException
java.sql.SQLException
protected java.sql.Statement createStatment() throws java.sql.SQLException
java.sql.SQLException
public void setBypassExecutionProxy(boolean doNotThread)
doNotThread
- don't use an execution proxy for this wrapper, even if
one exists.protected final void setExecuting(boolean executing)
public boolean execute() throws DBException
DBException
Statement.execute(java.lang.String)
protected boolean executeImpl(java.lang.String stmt) throws java.sql.SQLException
java.sql.SQLException
protected final <T> T doExecute(StatementWrapper.ExecutionRunnable<T> r) throws DBException
DBException
public void close()
finally{ ... }
block. When finished the timing is traced
for the query time.public final java.lang.String getIdentifier()
public final void setIdentifier(java.lang.String i)
protected final Database getDatabase()
protected final void setDatabase(Database db)
protected final java.lang.String getConnectionName()
protected final java.sql.Connection getConnection()
protected boolean isIgnoreErrors()
public void setIgnoreErrors(boolean ignore)
protected final void throwDBException(DBObject obj, java.lang.String text, java.sql.SQLException sqe) throws DBException
obj
- the object that the exception pertains totext
- the statement text that was executed to result in the
exceptionsqe
- the caught SQLExceptionDBException
- wrapping the SQLException to be thrown to API
clients as appropriate.protected DBSQLException createDBSQLException(DBObject obj, java.lang.String text, java.sql.SQLException sqe)
public final void throwDBException(java.sql.SQLException sqe) throws DBException
DBException
public final void throwDBException(DBObject obj, java.sql.SQLException sqe) throws DBException
DBException
protected boolean hasCancelled(java.sql.SQLException sqe)
protected final void sqlTrace(java.lang.String dbName, java.lang.String query, java.lang.Object... params)
protected final void queryStarted()
protected final void queryFinished()
protected static final DBSQLException createDBSQLException(Database db, DBObject obj, java.lang.String text, java.sql.SQLException sqe)
public static final void addListener(StatementWrapper.Listener l)
public static final boolean removeListener(StatementWrapper.Listener l)
public static void setExecutionProxy(StatementWrapper.ExecutionProxy ep)
public static StatementWrapper.ExecutionProxy getExecutionProxy()
public static void throwCancelledException() throws CancelledException
CancelledException