在 JDBC 中,setBlob() 和 setBinaryStream() 方法有什麼區別?哪種方法更可取?
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),然後將其傳送到伺服器。