我有以下代码行:
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/