Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Khác biệt giữa setBlob() và setBinaryStream() trong JDBC, cái nào ưu tiên?


Phương thức setBlob() dùng để thiết lập giá trị cho kiểu Blob trong database. Có ba biến thể:

  • void setBlob(int parameterIndex, Blob x): Thiết lập giá trị Blob cho tham số tại chỉ số chỉ định.

  • void setBlob(int parameterIndex, InputStream inputStream): Thiết lập nội dung input stream làm giá trị cho tham số tại chỉ số chỉ định.

  • void setBlob(int parameterIndex, InputStream inputStream, long length): Thiết lập nội dung input stream làm giá trị cho tham số tại chỉ số chỉ định.

Phương thức setBinaryStream() dùng để thiết lập nội dung InputStream làm giá trị cho tham số tại chỉ số chỉ định. Có ba biến thể:

  • void setBinaryStream(int parameterIndex, InputStream x): Thiết lập nội dung input stream làm giá trị cho tham số tại chỉ số chỉ định.

  • void setBinaryStream(int parameterIndex, InputStream x, int length): Thiết lập nội dung input stream (có số byte chỉ định) làm giá trị cho tham số tại chỉ số chỉ định.

  • void setBinaryStream(int parameterIndex, InputStream x, long length): Thiết lập nội dung input stream (có số byte chỉ định) làm giá trị cho tham số tại chỉ số chỉ định.

Khác biệt chính: setBlob() báo cho driver biết tham số nên gửi dưới dạng BLOB datatype đến server.

Còn setBinaryStream() thì driver tự xác định định dạng gửi (LONGVARBINARY hoặc BLOB) rồi mới gửi lên server.