JDBI v3.2.0 Release Notes
-
- ๐ New modules:
- jdbi3-testing - JdbiRule test rule for JUnit tests
- jdbi3-freemarker - render SQL templates using FreeMarker
- jdbi3-commons-text - render SQL templates using Apache commons-text StringSubstitutor
- jdbi3-sqlite - plugin for use with SQLite database
- ๐ New API
- @SqlScript annotation to execute multiple statements
- SqlLogger for logging queries, timing, and exceptions. Replacing TimingCollector, which is now deprecated
- Add ResultProducers.allowNoResults configuration option in case you may or may not get a result set
- MessageFormatTemplateEngine template engine, renders SQL using java.text.MessageFormat
- SqliteDatabaseRule test rule (in jdbi3-core test jar)
- ๐ Improvements
- @MaxRows.value() may now be omitted when used as a parameter annotation
- SerializableTransactionRunner 'max retries' handling throws more meaningful exceptions
- Postgres operators like '?' and '?|' may now be used without being mistaken for a positional parameter. Escape them in your SQL statements as '??' and '??|', respectively.
- Support for binding OptionalInt, OptionalLong, and OptionalDouble parameters.
- ๐ Bug fixes:
- SqlObject default methods now work in JDK 9
- SqlObject no longer gets confused about result types due to bridge methods
- StringTemplate no longer shares template groups across threads, to work around concurrency issues in StringTemplate project
- DefineStatementLexer handles predicates that look like definitions better. No more errors on unmatched "<" when you really meant "less than!"
- LocalDate binding should store the correct date when the server and database are running in different time zones.
- ๐ New modules: