将指定参数设置为给定的 java.io.reader
对象,该对象具有指定的字符数。将读取该 reader 的内容并发送到数据库。如果读取和发送到数据库的字节数不等于 length,则此方法抛出 sqlexception
。
在将一个非常大的 unicode 值输入到 longvarchar
参数时,通过 reader
对象发送它可能更为实际。在到达文件末尾之前,启用 jdbc 技术的驱动程序将根据需要从该流读取数据。驱动程序将执行从 unicode 到数据库 char
格式的任何必要转换。unicode 流的字节格式必须是 java utf-8,这在 java 虚拟机规范中定义。
注:此流对象既可以是一个标准 java 流对象,也可以是实现标准接口的用户自己的子类。
此方法设置的参数值是内部存储的,当调用方法 execute
时,将该值作为此 rowset
对象命令中的适当参数提供。必须在扩展此类和实现了一个或多个标准 jsr-114 rowset
接口的所有类中提供 execute
和 populate
之类的方法。
注:jdbcrowset
不需要 populate
方法,因为它没有在此类中定义。
调用 setcharacterstream
后再调用方法 getparams
将返回一个数组,其中包含已经设置的参数值。在该数组中,表示使用此方法所设置的值的元素本身也是一个数组。该数组的第一个元素是给定的 java.io.reader
对象。第二个元素是为 length 设置的值。参数编号由方法 getparams
返回的数组中元素的位置指示,第一个元素是第一个占位符参数的值,第二个元素是第二个占位符参数的值,依此类推。换句话说,如果正在设置的 reader 是第二个占位符参数的值,则包含该值的数组将是 getparams
返回数组中的第二个元素。
注意,因为数组中的元素编号从 0 开始,所以对应于占位符参数编号 parameterindex 的数组元素是元素编号 parameterindex -1。
- 参数:
parameterindex
- 此 rowset
对象命令中要设置的占位符参数的序号。第一个参数是 1,第二个参数是 2,依此类推;必须大于等于 1
reader
- 包含 unicode 数据的 reader
对象length
- 流中的字符数;长度为 0 或小于 0 是未定义的,但会导致在底层 jdbc 驱动程序中抛出无效长度异常。
- 抛出:
sqlexception
- 如果发生虚拟机
iis7站长之家、参数索引超出范围,或者当连接到数据源时,驱动程序读取和发送到数据库的字节数不等于 length 中指定的字节数- 另请参见:
getparams()