什么是setBytes'参数索引做

时间:2017-01-04 08:10:18

标签: java sqlite parameters

我有以下代码行:

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

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

我知道setBytes中的参数0是针对 parameterIndex 的,根据Oracles Documentation说明:

  

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

我的问题究竟是什么意思?如果我用1(或任何其他数字)切换1,会发生什么情况;它有什么功能?

我查看了一些SQLite教程,但没有人发现这实际上有什么用。

1 个答案:

答案 0 :(得分:2)

准备好的声明的SQL语句的占位符标有?setBytes(或任何其他setX方法)的第一个参数决定了您为这些值分配哪些占位符。

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

例如,如果您的陈述是:

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

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