我正在尝试在Presto / AWS Athena jdbc驱动程序之上使用最新的2.x版本的JDBI,该驱动程序不支持预准备语句。
似乎应该有一个配置选项或允许你关闭预准备语句的使用,特别是如果你只传入没有参数绑定的SQL。但是,StatementBuilder接口需要create方法的PreparedStatement返回值。
在这种情况下,有没有人遇到过这个或者有关如何使用JDBI的建议?我在其他几个数据库的项目中使用它,所以我希望保持一致性。
答案 0 :(得分:2)
Presto有JDBC驱动程序支持Teradata免费提供的准备语句。您可以从他们的网站下载。它应该与雅典娜合作,但你必须尝试。
答案 1 :(得分:1)
如果必须将JDBI与不支持PreparedStatement
的JDBC驱动程序一起使用,则有两种选择:
JDBI是开源的。修改源以满足您的需要。如果您以一种非常有用的方式执行此操作,您可能希望将更新发回,以便其他人可以从中受益,即成为贡献者。
假的。围绕来自Presto / AWS Athena的JDBC连接创建一个JDBC包装器,它返回一个假的PreparedStatement
,仅支持无参数的SQL语句,即如果UnsupportedOperationException
方法中的任何一个,则抛出setXxx
调用。然后,将包装的连接提供给JDBI。