Если вы собираетесь извлекать много данных (т. Е. Достаточно данных, чтобы вызвать проблемы с памятью), то getBinaryStream предоставит вам большую гибкость для обработки и отбрасывания данных при их чтении.
С другой стороны, это может быть довольно медленным, в зависимости от вашего драйвера JDBC, так как каждое чтение из потока может повлечь за собой большую сетевую болтовню с базой данных. Если вы вызываете getBytes, то драйвер знает, что нужно извлечь всю партию за один раз, что, вероятно, будет более эффективным.
getBlob () возвращает «указатель» на данные, которым вы можете манипулировать, используя методы интерфейса Blob. Если вам нужно изменить или иным образом использовать данные на месте, это может быть лучше для вас.