Package org.jdbi.v3.core.statement
Class SqlStatements
java.lang.Object
org.jdbi.v3.core.statement.SqlStatements
- All Implemented Interfaces:
JdbiConfig<SqlStatements>
Configuration holder for
SqlStatement
s.-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The default size of the SQL template cache. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddContextListener
(StatementContextListener listener) addCustomizer
(StatementCustomizer customizer) Provides a means for custom statement modification.<T> T
Returns cache statistics for the internal template cache.Returns a copy of this configuration object.Define an attribute forStatementContext
for statements executed by Jdbi.Defines attributes for each key/value pair in the Map.getAttribute
(String key) Obtain the value of an attributeReturns the attributes which will be applied toSQL statements
created by Jdbi.int
When recording JFR events, the maximum length of rendered parameters to store in the event record.int
When recording JFR events, the maximum length of rendered SQL to store in the event record.Returns the current logger.Returns theTemplateEngine
which renders the SQL template.Deprecated.boolean
If true, all statements created withinJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
are attached to theHandle
object for cleanup.boolean
If true, statements created withinJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
will be attached to theHandle
object in the callback for cleanup.boolean
If true, script statements parsed by aScript
object will have a trailing semicolon.boolean
void
setAttachAllStatementsForCleanup
(boolean attachAllStatementsForCleanup) Sets whether all statements created will automatically attached to the correspondingHandle
object automatically.void
setAttachCallbackStatementsForCleanup
(boolean attachCallbackStatementsForCleanup) Sets whether statements created within theJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
callback methods will automatically attached to theHandle
object and therefore cleaned up when the callback ends.setJfrParamMaxLength
(int jfrParamMaxLength) When recording JFR events, the maximum length of rendered parameters to store in the event record.setJfrSqlMaxLength
(int jfrSqlMaxLength) When recording JFR events, the maximum length of rendered SQL to store in the event record.setQueryTimeout
(Integer seconds) Jdbi does not implement its own timeout mechanism: it simply callsStatement.setQueryTimeout(int)
, leaving timeout handling to your jdbc driver.void
setScriptStatementsNeedSemicolon
(boolean scriptStatementsNeedSemicolon) If true, script statements parsed by aScript
object will have a trailing semicolon.setSqlLogger
(SqlLogger sqlLogger) Sets aSqlLogger
instance to log all SQL operations.setSqlParser
(SqlParser sqlParser) Sets theSqlParser
used to parse parameters in SQL statements executed by Jdbi.setTemplateCache
(JdbiCacheBuilder cacheBuilder) Sets the cache used to avoid repeatedly parsing SQL statements.setTemplateEngine
(TemplateEngine templateEngine) Sets theTemplateEngine
used to render SQL for allSQL statements
executed by Jdbi.setTimingCollector
(TimingCollector timingCollector) Deprecated.setUnusedBindingAllowed
(boolean unusedBindingAllowed) Sets whether or not an exception should be thrown when any arguments are given to a query but not actually used in it.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.jdbi.v3.core.config.JdbiConfig
setRegistry
-
Field Details
-
SQL_TEMPLATE_CACHE_SIZE
public static final int SQL_TEMPLATE_CACHE_SIZEThe default size of the SQL template cache.- See Also:
-
-
Constructor Details
-
SqlStatements
public SqlStatements()
-
-
Method Details
-
define
Define an attribute forStatementContext
for statements executed by Jdbi.- Parameters:
key
- the key for the attributevalue
- the value for the attribute- Returns:
- this
-
defineMap
Defines attributes for each key/value pair in the Map.- Parameters:
values
- map of attributes to define.- Returns:
- this
-
getAttribute
Obtain the value of an attribute- Parameters:
key
- the name of the attribute- Returns:
- the value of the attribute
-
getAttributes
Returns the attributes which will be applied toSQL statements
created by Jdbi.- Returns:
- the defined attributes.
-
addCustomizer
Provides a means for custom statement modification. Common customizations have their own methods, such asQuery.setMaxRows(int)
- Parameters:
customizer
- instance to be used to customize a statement- Returns:
- this
-
addContextListener
-
getTemplateEngine
Returns theTemplateEngine
which renders the SQL template.- Returns:
- the template engine which renders the SQL template prior to parsing parameters.
-
setTemplateEngine
Sets theTemplateEngine
used to render SQL for allSQL statements
executed by Jdbi. The default engine replaces<name>
-style tokens with attributesdefined
on the statement context.- Parameters:
templateEngine
- the new template engine.- Returns:
- this
-
setTemplateCache
Sets the cache used to avoid repeatedly parsing SQL statements.- Parameters:
cacheBuilder
- the cache builder to use to create the cache.- Returns:
- this
-
getSqlParser
-
setSqlParser
Sets theSqlParser
used to parse parameters in SQL statements executed by Jdbi. The default parses colon-prefixed named parameter tokens, e.g.:name
.- Parameters:
sqlParser
- the new SQL parser.- Returns:
- this
-
getTimingCollector
Deprecated.usegetSqlLogger()
instead- Returns:
- the timing collector
-
setTimingCollector
Deprecated.Sets theTimingCollector
used to collect timing about theSQL statements
executed by Jdbi. The default collector does nothing.- Parameters:
timingCollector
- the new timing collector- Returns:
- this
-
getSqlLogger
Returns the current logger.- Returns:
- A
SqlLogger
instance
-
setSqlLogger
Sets aSqlLogger
instance to log all SQL operations.- Parameters:
sqlLogger
- The logger. Usingnull
turns off all logging- Returns:
- this
-
getQueryTimeout
-
setQueryTimeout
Jdbi does not implement its own timeout mechanism: it simply callsStatement.setQueryTimeout(int)
, leaving timeout handling to your jdbc driver.- Parameters:
seconds
- the time in seconds to wait for a query to complete; 0 to disable the timeout; null to leave it at defaults (i.e. Jdbi will not callsetQueryTimeout(int)
)- Returns:
- this
-
isUnusedBindingAllowed
public boolean isUnusedBindingAllowed() -
setUnusedBindingAllowed
Sets whether or not an exception should be thrown when any arguments are given to a query but not actually used in it. Unused bindings tend to be bugs or oversights, but are not always. Defaults to false: unused bindings are not allowed.- Parameters:
unusedBindingAllowed
- the new setting- Returns:
- this
- See Also:
-
isAttachAllStatementsForCleanup
public boolean isAttachAllStatementsForCleanup()If true, all statements created withinJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
are attached to theHandle
object for cleanup.- Returns:
- True if statements are attached to their handle for cleanup
- Since:
- 3.38.0
-
setAttachAllStatementsForCleanup
Sets whether all statements created will automatically attached to the correspondingHandle
object automatically. This can be useful when mostly short-lived handles are used because closing the handle will now clean up all outstanding resources from any statement. The default is false.- Parameters:
attachAllStatementsForCleanup
- If true, all statements are automatically attached to the Handle- Since:
- 3.38.0
-
isAttachCallbackStatementsForCleanup
public boolean isAttachCallbackStatementsForCleanup()If true, statements created withinJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
will be attached to theHandle
object in the callback for cleanup.- Returns:
- True if statements are attached to their handle within Jdbi callbacks
- Since:
- 3.38.0
-
setScriptStatementsNeedSemicolon
public void setScriptStatementsNeedSemicolon(boolean scriptStatementsNeedSemicolon) If true, script statements parsed by aScript
object will have a trailing semicolon. Some databases (e.g. Oracle) require that trailing semicolon while others (e.g. MySQL) do not and may consider it a syntax error. If executing a script against the database results in syntax errors that point at semicolons, change the value of this setting.
The default setting istrue
for historical reasons.- Parameters:
scriptStatementsNeedSemicolon
- If true, parsed statements will have a trailing semicolon.- Since:
- 3.43.0
-
isScriptStatementsNeedSemicolon
public boolean isScriptStatementsNeedSemicolon()If true, script statements parsed by aScript
object will have a trailing semicolon. Some databases (e.g. Oracle) require that trailing semicolon while others (e.g. MySQL) do not and may consider it a syntax error. If executing a script against the database results in syntax errors that point at semicolons, change the value of this setting.- Returns:
- True if parsed statements will have a trailing semicolon.
- Since:
- 3.43.0
-
setAttachCallbackStatementsForCleanup
public void setAttachCallbackStatementsForCleanup(boolean attachCallbackStatementsForCleanup) Sets whether statements created within theJdbi.withHandle(org.jdbi.v3.core.HandleCallback<R, X>)
,Jdbi.useHandle(org.jdbi.v3.core.HandleConsumer<X>)
,Jdbi.inTransaction(org.jdbi.v3.core.HandleCallback<R, X>)
andJdbi.useTransaction(org.jdbi.v3.core.HandleConsumer<X>)
callback methods will automatically attached to theHandle
object and therefore cleaned up when the callback ends. The default is true.- Parameters:
attachCallbackStatementsForCleanup
- If true, statements created within the Jdbi callbacks are attached to the handle- Since:
- 3.38.0
-
setJfrSqlMaxLength
When recording JFR events, the maximum length of rendered SQL to store in the event record. -
getJfrSqlMaxLength
When recording JFR events, the maximum length of rendered SQL to store in the event record. -
setJfrParamMaxLength
When recording JFR events, the maximum length of rendered parameters to store in the event record. -
getJfrParamMaxLength
When recording JFR events, the maximum length of rendered parameters to store in the event record. -
cacheStats
Returns cache statistics for the internal template cache. This returns a cache specific object, so the user needs to know what caching library is in use. -
createCopy
Description copied from interface:JdbiConfig
Returns a copy of this configuration object. Changes to the copy should not modify the original, and vice-versa.- Specified by:
createCopy
in interfaceJdbiConfig<SqlStatements>
- Returns:
- a copy of this configuration object.
-
getSqlLogger()
instead