我有以下代码行:

conn.prepareStatement(SQL).setBytes(1, bos.toByteArray());


其中SQL是我准备好的语句字符串,而bos是我的byteArrayOutputStream

我知道setBytes中的参数0是根据Oracles Documentation的parameterIndex指出的:


  将指定参数设置为给定的Java字节值。


我的问题是什么意思?如果我将1换成2(或任何其他数字)会怎样?它有什么功能?

我看了一些SQLite教程,但没有人提到这实际上是做什么的。

最佳答案

准备好的语句的SQL语句的占位符标记为?
setBytes(或任何其他setX方法)的第一个参数确定要为其分配值的占位符。

1对应于SQL语句中的第一个?,2对应于第二个?,依此类推...

例如,如果您的陈述是:

    "SELECT X, Y " +
    "FROM TableName " +
    "WHERE Z = ?"
                       );


setBytes(1, bos.toByteArray())将传递的字节数组分配给语句中的第一个(也是唯一的)?。在该示例中,setBytes(2, bos.toByteArray())将是一个错误,因为语句中只有一个?

关于java - setBytes的参数索引有什么作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41459041/

10-11 13:44