Как создать объект java.sql.Blob в Java SE 1.5.0 с помощью byte [] input? - PullRequest
18 голосов
/ 08 июня 2011

Я хочу создать объект Blob из байта [] для обновления таблицы, используя PreparedStatement#setBlob().В J2SE 6 у нас есть java.sql.Connection#createBlob(), чтобы сделать это.Есть ли что-то похожее на это в J2SE 1.5.0?Каков наилучший способ обновить столбец типа BLOB данными byte[] в J2SE 1.5.0?

Ответы [ 3 ]

27 голосов
/ 08 июня 2011

Пример использования SerialBlob :

import java.sql.Blob;
import javax.sql.rowset.serial.SerialBlob;

byte[] byteArray = .....;
Blob blob = new SerialBlob(byteArray);
7 голосов
/ 08 июня 2011

Вам вообще не нужно беспокоиться о создании Blob объектов. Рассматривайте их как большие двоичные объекты в базе данных и byte[] s в Java. Например:

@Entity
@Table(name = "some.table")
public class MyEntity
{
    @Id
    int myId;

    @Lob
    byte[] myBlob;

    // snip getters & setters
}

Если вы действительно хотите создать экземпляр Blob самостоятельно, вы можете использовать реализацию SerialBlob:

byte[] bytes = ...;
Blob myBlob = new SerialBlob(bytes);
0 голосов
/ 08 июня 2011

Вам не нужно создавать сам Blob.При выполнении подготовленного оператора используйте параметр ByteArrayInputStream для параметра при установке параметра BLOB-объекта.

...