setBlob() 和 setBinaryStream() 方法有什么区别?在 JDBC 中哪个更可取?
setBlob() 方法用于设置数据库中 Blob 数据类型的值。它有以下三种变体:
void setBlob(int paramterIndex, Blob x):将给定的 Blob 值设置为指定索引处的参数。
void setBlob(int paramterIndex, InputStream inputStream):将给定输入流的内容作为值设置为指定索引处的参数。
void setBlob(int paramterIndex, InputStream inputStream, long length):将给定输入流的内容作为值设置为指定索引处的参数。
setBinaryStream() 方法用于将给定 InputStream 的内容设置为指定索引处参数的值。它有以下三种变体:
void setBinaryStream(int paramterIndex, InputStream x): 将给定输入流的内容设置为指定索引处的参数的值。
void setBinaryStream(int paramterIndex, InputStream x, int length): ): 将给定输入流(将具有指定数量的字节)的内容设置为指定索引处的参数的值。
void setBinaryStream(int paramterIndex, InputStream x, long length): 将给定输入流(将具有指定数量的字节)的内容设置为指定索引处的参数的值。
这两种方法的主要区别在于 setBlob() 方法指示驱动程序应将参数值作为 BLOB 发送数据类型到服务器。
而在 setBinaryStream() 方法的情况下,驱动程序首先确定应以哪种格式发送值(LONGVARBINARY 或 BLOB),然后将其发送到服务器。