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

棚架:

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

似乎应该有一个配置选项或诸如此类的配置选项,它可以让您关闭对准备好的语句的使用,特别是如果您只是传递不带参数绑定的SQL。但是,StatementBuilder接口需要create方法中的PreparedStatement返回值。

在这种情况下,有没有人遇到过这种情况或对如何使用JDBI有任何建议?我在项目的其余部分中将其用于其他几个数据库,因此希望保持一致性。

安德烈亚斯(Andreas):

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

  1. JDBI是开源的。修改源以适合您的需求。如果您以一般有用的方式进行更新,则可能需要将更新发布回去,以便其他人可以从中受益,即成为贡献者

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

PHP Postgres PDO驱动程序不支持准备好的语句吗?

不支持驱动程序 [google]

java.sql.SQLException:将HikariCP与Hive JDBC一起使用时不支持该方法

.Net将事务与带预准备语句的SqlClient一起使用

hsqldb 2.3.2 jdbc驱动程序不支持ResultSet.first()吗?

获取 R2dbcNonTransientResourceException:不支持的 Oracle JDBC 驱动程序版本:19

如何将MS JDBC驱动程序与MS SQL Server 2008 Express一起使用?

将NetBeans IDE的数据库管理器与UCanAccess JDBC驱动程序一起使用

将SQL Server与MySQL一起使用时出现“不支持选项”错误

Mongo Go驱动程序的DocumentCount不支持$ nearSphere

odbc驱动程序不支持请求的属性

不支持驱动程序[]。-Laravel 5.3

不支持社交名流驱动程序[VKontakte]

Zotac WiFi驱动程序-不支持Linux

错误:“不支持驱动程序 [默认]。” 在laravel 8

不支持 overlay2 驱动程序

将Mozilla Marionette Web驱动程序与Selenium一起使用时,如何禁用Web驱动程序异常

将Redis与Laravel一起使用:是否使用Cache驱动程序或Redis类?

尝试将数组传递给准备好的语句时,Oracle jdbc“ createArray”抛出“不支持的功能”异常

用于Cloud Spanner的Simba JDBC驱动程序与Spark JDBC DataFrame阅读器一起使用

将准备好的语句与JDBCTemplate一起使用

将准备好的语句与游标一起使用

在Java和JDBC驱动程序中使用准备好的语句和变量绑定Order By

尝试将google驱动器添加为文件系统时,“不支持驱动程序[google]。”,“例外”:“ InvalidArgumentException”

将Laravel身份验证与驱动程序数据库一起使用

将UpdateOne与MongoDB Golang驱动程序一起使用时Upsert不起作用

将Intel图形与Nvidia驱动程序引导循环一起使用

将 Chrome 驱动程序与 Selenium Webdriver 一起使用时出现 SocketException

MongoDB:将$ sample与C#驱动程序一起使用