- All Implemented Interfaces:
Serializable
,EventListener
,ExecuteListener
ExecuteListener
that just logs events to java.util.logging,
log4j, or slf4j using the JooqLogger
- Author:
- Lukas Eder
- See Also:
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
exception
(ExecuteContext ctx) Called in the event of an exception at any moment of the execution lifecycle.void
executeEnd
(ExecuteContext ctx) Called after executing a statement.void
fetchEnd
(ExecuteContext ctx) Called after fetching data from aResultSet
.void
outEnd
(ExecuteContext ctx) Called after fetching out parameter values from aCallableStatement
.void
recordEnd
(ExecuteContext ctx) Called after fetching a record from aResultSet
.void
renderEnd
(ExecuteContext ctx) Called after rendering SQL from aQueryPart
.void
resultEnd
(ExecuteContext ctx) Called after fetching a set of records from aResultSet
.void
Called before fetching a set of records from aResultSet
.Methods inherited from class org.jooq.impl.DefaultExecuteListener
bindEnd, bindStart, end, executeStart, fetchStart, outStart, prepareEnd, prepareStart, recordStart, renderStart, start, warning
-
Constructor Details
-
LoggerListener
public LoggerListener()
-
-
Method Details
-
renderEnd
Description copied from interface:ExecuteListener
Called after rendering SQL from aQueryPart
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..
Overridable attributes in
ExecuteContext
:ExecuteContext.sql(String)
: The renderedSQL
statement that is about to be executed. You can modify this statement freely.
- Specified by:
renderEnd
in interfaceExecuteListener
- Overrides:
renderEnd
in classDefaultExecuteListener
-
recordEnd
Description copied from interface:ExecuteListener
Called after fetching a record from aResultSet
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
- A
ExecuteContext.resultSet()
: TheResultSet
that is about to be fetched.ExecuteContext.record()
: The lastRecord
that was fetched.ExecuteContext.recordLevel()
: The record nesting level, in case the upcomingExecuteContext.record()
is aRow
or other type of nested record. The level is also increased if a record is contained in a nestedExecuteContext.result()
.ExecuteContext.sqlWarning()
: TheSQLWarning
that was emitted by the database ornull
if no warning was emitted.
Note that this method is not called when executing queries that do not return a result, or when executing routines.
- Specified by:
recordEnd
in interfaceExecuteListener
- Overrides:
recordEnd
in classDefaultExecuteListener
-
resultStart
Description copied from interface:ExecuteListener
Called before fetching a set of records from aResultSet
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
- A
ExecuteContext.resultSet()
: TheResultSet
that is about to be fetched.ExecuteContext.result()
: The set of records that are about to be fetched.ExecuteContext.resultLevel()
: The result nesting level, in case the upcomingExecuteContext.result()
is aDSL.multiset(Select)
or other type of nested result.ExecuteContext.sqlWarning()
: TheSQLWarning
that was emitted by the database ornull
if no warning was emitted.
Executions without
Result
Not all types of execution produce results of type
Result
. For example, these do not:ResultQuery.iterator()
ResultQuery.stream()
ResultQuery.collect(Collector)
(including allCollector
based fetches, such as e.g. aResultQuery.fetchMap(Field, Field)
,ResultQuery.fetchGroups(Field, Field)
,ResultQuery.fetchSet(Field)
, and all the overloads)Publisher.subscribe(Subscriber)
ExecuteListener.resultStart(ExecuteContext)
event is fired.Note that this method is also not called when executing queries that do not return a result, or when executing routines. This is also not called when fetching single records, with
Cursor.fetchNext()
for instance.- Specified by:
resultStart
in interfaceExecuteListener
- Overrides:
resultStart
in classDefaultExecuteListener
-
resultEnd
Description copied from interface:ExecuteListener
Called after fetching a set of records from aResultSet
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
- A
ExecuteContext.resultSet()
: TheResultSet
that is about to be fetched.ExecuteContext.record()
: The lastRecord
that was fetched.ExecuteContext.result()
: The set of records that were fetched.ExecuteContext.resultLevel()
: The result nesting level, in case the upcomingExecuteContext.result()
is aDSL.multiset(Select)
or other type of nested result.ExecuteContext.sqlWarning()
: TheSQLWarning
that was emitted by the database ornull
if no warning was emitted.
Executions without
Result
Not all types of execution produce results of type
Result
. For example, these do not:ResultQuery.iterator()
ResultQuery.stream()
ResultQuery.collect(Collector)
(including allCollector
based fetches, such as e.g. aResultQuery.fetchMap(Field, Field)
,ResultQuery.fetchGroups(Field, Field)
,ResultQuery.fetchSet(Field)
, and all the overloads)Publisher.subscribe(Subscriber)
ExecuteListener.resultEnd(ExecuteContext)
event is fired.Note that this method is also not called when executing queries that do not return a result, or when executing routines. This is also not called when fetching single records, with
Cursor.fetchNext()
for instance.- Specified by:
resultEnd
in interfaceExecuteListener
- Overrides:
resultEnd
in classDefaultExecuteListener
-
fetchEnd
Description copied from interface:ExecuteListener
Called after fetching data from aResultSet
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
Statement
is already closed!- A
ExecuteContext.resultSet()
: TheResultSet
that was fetched. Note that theResultSet
is already closed!ExecuteContext.rows()
: The number of affected rows if applicable.ExecuteContext.serverOutput()
: The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()
> 0ExecuteContext.record()
: The lastRecord
that was fetched.ExecuteContext.result()
: The last set of records that were fetched.ExecuteContext.sqlWarning()
: TheSQLWarning
that was emitted by the database ornull
if no warning was emitted.
In case of multiple
ResultSets
withResultQuery.fetchMany()
, this is called several times, once perResultSet
Note that this method is not called when executing queries that do not return a result, or when executing routines.
- Specified by:
fetchEnd
in interfaceExecuteListener
- Overrides:
fetchEnd
in classDefaultExecuteListener
-
executeEnd
Description copied from interface:ExecuteListener
Called after executing a statement.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
- A
ExecuteContext.resultSet()
: TheResultSet
that is about to be fetched ornull
, if theQuery
returns no result set, or if aRoutine
is being executed.ExecuteContext.rows()
: The number of affected rows if applicable. In case aResultSet
is fetched, this number is only available at theExecuteListener.fetchEnd(ExecuteContext)
event.ExecuteContext.serverOutput()
: The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()
> 0
Overridable attributes in
ExecuteContext
:ExecuteContext.resultSet(ResultSet)
: TheResultSet
that is about to be fetched. You can modify this result set freely, or wrapExecuteContext.resultSet()
with your enriched result set wrapper
- Specified by:
executeEnd
in interfaceExecuteListener
- Overrides:
executeEnd
in classDefaultExecuteListener
-
outEnd
Description copied from interface:ExecuteListener
Called after fetching out parameter values from aCallableStatement
.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
- A
ExecuteContext.sqlWarning()
: TheSQLWarning
that was emitted by the database ornull
if no warning was emitted.
Note that this method is called only when executing standalone routine calls.
- Specified by:
outEnd
in interfaceExecuteListener
- Overrides:
outEnd
in classDefaultExecuteListener
-
exception
Description copied from interface:ExecuteListener
Called in the event of an exception at any moment of the execution lifecycle.Available attributes from
ExecuteContext
:ExecuteContext.connection()
: The connection used for executionScope.configuration()
: The execution configurationExecuteContext.query()
: TheQuery
object, if a jOOQ query is being executed ornull
otherwiseExecuteContext.routine()
: TheRoutine
object, if a jOOQ routine is being executed ornull
otherwiseExecuteContext.sql()
: The renderedSQL
statement that is about to be executed, ornull
if theSQL
statement is unknown..ExecuteContext.statement()
: ThePreparedStatement
that is about to be executed, ornull
if no statement is known to jOOQ. This can be any of the following:
- A
java.sql.PreparedStatement
from your JDBC driver when a jOOQQuery
is being executed asStatementType.PREPARED_STATEMENT
- A
java.sql.Statement
from your JDBC driver wrapped in ajava.sql.PreparedStatement
when your jOOQQuery
is being executed asStatementType.STATIC_STATEMENT
- A
java.sql.CallableStatement
when you are executing a jOOQRoutine
Statement
may be closed!- A
ExecuteContext.resultSet()
: TheResultSet
that was fetched ornull
, if no result set was fetched. Note that theResultSet
may already be closed!ExecuteContext.rows()
: The number of affected rows if applicable.ExecuteContext.serverOutput()
: The server output if available. This may be fetched whenSettings.getFetchServerOutputSize()
> 0ExecuteContext.record()
: The lastRecord
that was fetched or null if no records were fetched.ExecuteContext.result()
: The last set of records that were fetched or null if no records were fetched.ExecuteContext.exception()
: TheRuntimeException
that is about to be thrownExecuteContext.sqlException()
: TheSQLException
that was thrown by the database
- Specified by:
exception
in interfaceExecuteListener
- Overrides:
exception
in classDefaultExecuteListener
-