setBlob()方法和setBinaryStream()方法在JDBC中有什么区别?哪一个更好?
setBlob()方法用于在数据库中设置Blob数据类型的值。它具有三种变体,如下所示:
- void setBlob(int parameterIndex, Blob x): 将给定的Blob值设置为指定索引处的参数值。
-
void setBlob(int parameterIndex, InputStream inputStream): 将给定输入流的内容设置为指定索引处参数的值。
-
void setBlob(int parameterIndex, InputStream inputStream, long length): 将给定输入流的内容设置为指定索引处参数的值。
setBinaryStream()方法用于将给定InputStream的内容设置为指定索引参数的值。它具有三种变体,如下所示:
- void setBinaryStream(int parameterIndex, InputStream x): 将给定的输入流的内容作为参数的值设置到指定的索引。
-
void setBinaryStream(int parameterIndex, InputStream x, int length): 将给定的输入流的内容(其将具有指定的字节数)设置为指定索引处参数的值。
-
void setBinaryStream(int parameterIndex, InputStream x, long length): 将给定的输入流的内容(其将具有指定的字节数)设置为指定索引处参数的值。
这两种方法之间的主要区别在于setBlob()方法表示驱动程序应将参数值作为BLOB数据类型发送到服务器。
而对于setBinaryStream()方法,首先驱动程序确定该值应以哪种格式发送(LONGVARBINARY或BLOB),然后发送到服务器。
阅读更多:MySQL 教程
极客教程