Java 将JDBI与不支持预处理语句的JDBC驱动程序一起使用
我试图在Presto/AWS Athena jdbc驱动程序之上使用最新的2.x版本的JDBI,该驱动程序不支持预先准备好的语句 似乎应该有一个配置选项或类似选项,允许您关闭预处理语句的使用,特别是如果您只是在没有参数绑定的情况下传入SQL。但是,StatementBuilder接口需要来自create方法的PreparedStatement返回值Java 将JDBI与不支持预处理语句的JDBC驱动程序一起使用,java,jdbc,amazon-athena,jdbi,presto,Java,Jdbc,Amazon Athena,Jdbi,Presto,我试图在Presto/AWS Athena jdbc驱动程序之上使用最新的2.x版本的JDBI,该驱动程序不支持预先准备好的语句 似乎应该有一个配置选项或类似选项,允许您关闭预处理语句的使用,特别是如果您只是在没有参数绑定的情况下传入SQL。但是,StatementBuilder接口需要来自create方法的PreparedStatement返回值 有没有人遇到过这种情况,或者对如何在这种情况下使用JDBI有什么建议?我在其他几个数据库的项目的其余部分都使用它,因此我更愿意保留它以保持一致性。如
有没有人遇到过这种情况,或者对如何在这种情况下使用JDBI有什么建议?我在其他几个数据库的项目的其余部分都使用它,因此我更愿意保留它以保持一致性。如果您必须将JDBI与不支持
PreparedStatement
的JDBC驱动程序一起使用,您有两个选择:
PreparedStatement
,仅支持无参数SQL语句,即,如果调用了setXxx
方法,则抛出UnsupportedOperationException
。然后将包装好的连接提供给JDBIPresto的JDBC驱动程序支持Teradata免费提供的准备好的语句。你可以从他们的网站上下载。雅典娜应该可以使用它,但你必须试试。谢谢,我最终选择了#2,我可能会在某个时候在Github上获得此代码,以防其他人想这样做。@RhodesianHunter,你是否每次都将代码发布到Github上?这是很好的建议,谢谢分享!最后,我将接受上述建议,因为如果AWS提供的驱动程序更改了一些重要的内容,我不想在某个时候将所有内容都切换回AWS提供的驱动程序,这也使身份验证更容易(您可以从框中提取权限等)。希望你的建议对其他可能看到这一点的人有所帮助!伟大的对我来说有道理。