Чтение и запись больших объектов Java

Чтение и запись больших объектов JavaВ дополнение к числам, строкам и датам, многие базы данных могут сохранять большие объекты(large object — LOB), к числу которых относятся изображения и другие данные. В языке SQL существует понятие больших двоичных объектов(binary large object — BLOB) и больших символьных объектов(character large object — CLOB).

Чтобы прочитать LOB, нужно сначала выполнить оператор SQL, а затем вызвать метод getBlob или getClob в ResultSet. В результате вы получите объект типа Blob или Clob. Чтобы получить двоичные данные из Blob, вызовите метод getBytes или getInputStream. Например, если у вас имеется таблица с изображениями на книжных обложках, то изображение можно получить следующим образом:

Подобным образом, если вы извлечете объект Clob, вы можете получить символьные данные посредством вызова метода String или getCharacterStream.

Чтобы поместить LOB в базу данных, нужно вызвать метод createLOB или createCLOB на нашем объекте Connection, получить выходной поток или писатель для LOB, записать данные и сохранить объект в базе данных. Например, ниже показан пример того, как можно сохранить изображение: