JDBI v3.0.0-beta1 Release Notes

    • ๐Ÿ”จ [breaking] Refactored SqlStatementCustomizerFactory.createForParameter(...)
      • Now returns new SqlStatementParameterCustomizer type, so parameter customizers can be cached and reused for performance.
      • Now accepts a Type parameter, so parameter binders no longer have to check whether the statement is a PreparedBatch.
    • ๐Ÿ”จ [breaking] Handlers config class, refactored HandlerFactory permit alternative method handler mapping strategies.
    • [breaking] Renamed BeanMapper, FieldMapper, and ConstructorMapper's of(...) methods to factory(...). Added of methods in their place which return RowMappers, whereas the factory methods from before return RowMapperFactorys.
    • [breaking] Mixing named and positional parameters in SQL statements will now throw an exception. See https://github.com/jdbi/jdbi/pull/787
    • ๐Ÿ– Handlers registry allows users to use custom SQL Object method handlers without a SQL method annotation.
    • ๐Ÿ– HandlerDecorators registry allows adding custom behavior to any SQL Object method, with or without an annotation.
    • ๐Ÿ”Œ jdbi3-kotlin plugin adds support for mapping Kotlin data classes.
    • ๐Ÿ”Œ jdbi3-kotlin-sqlobject plugin adds support for Kotlin SQL Objects, including Kotlin default methods, and default parameter values.
    • ๐Ÿ‘Œ Support for collecting results into Map, and Guava's Multimap.
    • ๐Ÿ”ง Configuration option to control how "untyped null" arguments are bound. Useful for some database vendors (e.g. Derby, Sybase) that expect a different SQL type constant for null values.
    • ๐Ÿ‘Œ Support boolean[] return type from @SqlBatch methods
    • ๐Ÿ› Bug fixes:
      • NullPointerException in Postgres plugin when binding null UUID
      • IllegalArgumentException with @SqlBatch when the batch is empty
      • NullPointerException when null is bound to an array column.