如何在java中将Blob转换为String和String转换为Blob

2022-09-01 19:32:23

我正在尝试使用

Blob blob = rs.getBlob(cloumnName[i]);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);

它工作正常,但是当我要转换为并尝试插入数据库时,则没有任何插入到数据库中。我使用了下面的代码将字符串转换为Blob:StringBlob

String value = (s);
byte[] buff = value.getBytes();
Blob blob = new SerialBlob(buff);

任何人都可以帮助我在Java中转换为和转换为Java?BlobStringStringBlob


答案 1

试试这个(a2是BLOB col)

PreparedStatement ps1 = conn.prepareStatement("update t1 set a2=? where id=1");
Blob blob = conn.createBlob();
blob.setBytes(1, str.getBytes());
ps1.setBlob(1, blob);
ps1.executeUpdate();

即使没有BLOB,它也可以工作,驱动程序将自动转换类型:

   ps1.setBytes(1, str.getBytes);
   ps1.setString(1, str);

此外,如果您使用文本,CLOB似乎是一种更自然的col类型


答案 2

使用此选项可将字符串转换为 Blob。其中,连接是与 db 对象的连接。

    String strContent = s;
    byte[] byteConent = strContent.getBytes();
    Blob blob = connection.createBlob();//Where connection is the connection to db object. 
    blob.setBytes(1, byteContent);

推荐