将JDBI与不支持预准备语句的JDBC驱动程序一起使用

时间:2017-10-03 15:49:29

标签: java jdbc amazon-athena jdbi presto

我正在尝试在Presto / AWS Athena jdbc驱动程序之上使用最新的2.x版本的JDBI,该驱动程序不支持预准备语句。

似乎应该有一个配置选项或允许你关闭预准备语句的使用,特别是如果你只传入没有参数绑定的SQL。但是,StatementBuilder接口需要create方法的PreparedStatement返回值。

在这种情况下,有没有人遇到过这个或者有关如何使用JDBI的建议?我在其他几个数据库的项目中使用它,所以我希望保持一致性。

2 个答案:

答案 0 :(得分:2)

Presto有JDBC驱动程序支持Teradata免费提供的准备语句。您可以从他们的网站下载。它应该与雅典娜合作,但你必须尝试。

答案 1 :(得分:1)

如果必须将JDBI与不支持PreparedStatement的JDBC驱动程序一起使用,则有两种选择:

  1. JDBI是开源的。修改源以满足您的需要。如果您以一种非常有用的方式执行此操作,您可能希望将更新发回,以便其他人可以从中受益,即成为贡献者

  2. 假的。围绕来自Presto / AWS Athena的JDBC连接创建一个JDBC包装器,它返回一个假的PreparedStatement,仅支持无参数的SQL语句,即如果UnsupportedOperationException方法中的任何一个,则抛出setXxx调用。然后,将包装的连接提供给JDBI。