如何确定JDBC驱动程序是否支持PreparedStatement?

时间:2019-04-04 20:13:55

标签: jdbc prepared-statement

有没有一种方法可以以编程方式检测特定的JDBC驱动程序是否支持PreparedStatement,而无需调用executeQuery()并捕获“未实现”异常?

1 个答案:

答案 0 :(得分:1)

任何兼容的JDBC驱动程序都必须实现预处理语句。如果您有一个不支持预备语句的驱动程序,那么它正式上不是JDBC驱动程序(即使它实现了JDBC API的一部分)。

由于JDBC规范要求支持预处理语句,因此API中没有任何内容可以检查它们是否受支持。请与该驱动程序的供应商/作者联系,并告诉他们准备好的语句不是可选的。不幸的是,这意味着您必须先执行它才能发现它。

此外,如果任何不支持预备语句的驱动程序都允许预备语句但仅在执行时失败,我会感到非常惊讶。对我来说,这建议支持 预备语句(否则为什么不只在调用<html>时失败),但不支持您所做的任何事情(如调用{{1 }},而不是<body>