JDBC 和 DB2 中的命名参数标记

Named Parameter Markers in JDBC and DB2

我正在尝试使用命名参数标记,如:

SELECT field
FROM table
WHERE field = :value  -- I'd like to use this ':value'

我一直在读这方面的内容,我知道我需要将我的 PreparedStatement 转换为 DB2PreparedStatement,我做到了,方法是在我的 pom.xml:

中也包含这个依赖项
    <dependency>
        <groupId>com.ibm.db2</groupId>
        <artifactId>db2jcc</artifactId>
        <version>8.1</version><!-- I was using 4.3.111 before -->
    </dependency>

但是后来我来Eclipse试试,但是它似乎没有检测到DB2PreparedStatement中的setJccXXX()方法,我无法编译它。

我还了解到我可以通过继承为 Statement 编写自定义代码,但如果可以的话,我不想重新发明轮子。

我主要怀疑这可能与 db2jcc 的版本有关,但我认为这是我可以从允许使用的存储库中使用的最高版本。

附加数据:

在终端: $ java -cp /full/path/to/db2jcc4.jar com.ibm.db2.jcc.DB2Jcc -version

IBM DB2 JDBC Universal Driver Architecture 2.3.63

在数据库中:

SELECT VERSIONNUMBER FROM SYSIBM.SYSVERSIONS

|VERSIONNUMBER| 
|-------------| 
|-10050900 | 
|9070900 | 
|10050800 | 
|10051000 |
|11010405 | 
|11010406 | 
|11050700 |

看来,这个非常老的 Db2 jcc 2.3.63 版本驱动程序(来自 Db2 V8.2)不支持命名参数。
当前的 Db2 jcc 驱动程序确实支持这样的功能。
强烈建议使用Db2 Server版本对应的Db2 jcc驱动。