如何将dropwizard jdbi 2.78升级到jdbi版本3,因为我想使用其中包含的连接功能。
答案 0 :(得分:5)
项目成员在这里。
我们将在v3最终版本发布之前发布更完整的迁移指南。与此同时,我们的一位用户刚刚提交了一份体面的变更清单作为起点:
(见https://github.com/jdbi/jdbi/issues/715)
重命名了类(所以不像删除导入那样简单,让IDE修复它):
Jdbi的构造函数已被create()工厂方法替换。
ResultSetMapper替换为RowMapper,map方法不再具有行索引。 Jdbi 3中存在一个名为ResultSetMapper的类,但它有不同的用途。 @Mapper替换为@UseRowMapper。 Jdbi上的registerMapper()被registerRowMapper()替换。
@BindIn替换为@BindList,不再需要StringTemplate。
使用默认的Jdbi模板,不引用尖括号,这意味着在工具 - >下配置参数模式后,IntelliJ可以理解语法。数据库 - >用户模式。
查询不再具有默认类型的Map,因此无法直接在其上调用list()。在调用list()之前调用mapToMap()。
TransactionStatus不再存在。
TransactionConsumer.useTransaction()现在只接受Handle,因此当使用Jdbi或Handle上的useTransaction()方法时,需要删除TransactionStatus参数。
TransactionCallback.inTransaction()现在只接受一个句柄,因此当使用Jdbi或Handle上的inTransaction()方法时,需要删除TransactionStatus参数。
CallbackFailedException不再存在。各种功能接口(如HandleConsumer,HandleCallback,TransactionalConsumer和TransactionalCallback)现在可以抛出任何异常类型(但使用泛型进行限制以避免不必要的已检查异常处理)。
默认情况下,SQL对象支持不再可用。它必须在每个创建的Jdbi实例中注册。
答案 1 :(得分:0)
请参阅《 Dropwizard用户手册》中的Dropwizard JDBI3和《 Jdbi 3开发人员指南》中的Upgrading from v2 to v3。