Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

ความแตกต่างระหว่าง setBlob() และ setBinaryStream() ใน JDBC ใช้ตัวไหนดี?


เมธอด setBlob() ตั้งค่าสำหรับชนิดข้อมูล Blob ในฐานข้อมูล มี 3 รูปแบบ:

  • void setBlob(int parameterIndex, Blob x): ตั้งค่า Blob object ให้พารามิเตอร์

  • void setBlob(int parameterIndex, InputStream inputStream): ตั้งค่าเนื้อหา InputStream เป็นค่า

  • void setBlob(int parameterIndex, InputStream inputStream, long length): ตั้งค่า InputStream พร้อมระบุความยาว

เมธอด setBinaryStream() ตั้งค่า InputStream ให้พารามิเตอร์ มี 3 รูปแบบ:

  • void setBinaryStream(int parameterIndex, InputStream x): ตั้งค่า InputStream จนจบไฟล์

  • void setBinaryStream(int parameterIndex, InputStream x, int length): ตั้งค่า InputStream ระบุจำนวน byte

  • void setBinaryStream(int parameterIndex, InputStream x, long length): ตั้งค่า InputStream ระบุจำนวน byte (long)

ความแตกต่างหลัก: setBlob() บอก driver ส่งค่าเป็น BLOB datatype ตรงไป ตั้งแต่แรก ในขณะที่ setBinaryStream() driver ต้องตัดสินใจก่อนว่าจะส่งเป็น LONGVARBINARY หรือ BLOB แล้วค่อยส่ง