首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在java中将Blob转换为String,将String转换为Blob

如何在java中将Blob转换为String,将String转换为Blob
EN

Stack Overflow用户
提问于 2013-07-01 16:48:54
回答 5查看 151.7K关注 0票数 25

我尝试通过使用以下命令从BLOB数据类型中获取字符串

代码语言:javascript
复制
Blob blob = rs.getBlob(cloumnName[i]);
byte[] bdata = blob.getBytes(1, (int) blob.length());
String s = new String(bdata);

它工作得很好,但当我要将String转换为Blob并尝试插入到数据库中时,然后没有插入到数据库中。我使用了以下代码将String转换为Blob:

代码语言:javascript
复制
String value = (s);
byte[] buff = value.getBytes();
Blob blob = new SerialBlob(buff);

有没有人能帮我把Blob转换成String,把String转换成Blob

EN

回答 5

Stack Overflow用户

发布于 2013-07-01 17:06:45

试试这个(a2是BLOB col)

代码语言:javascript
复制
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也可以工作,驱动程序会自动转换类型:

代码语言:javascript
复制
   ps1.setBytes(1, str.getBytes);
   ps1.setString(1, str);

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

票数 8
EN

Stack Overflow用户

发布于 2013-07-01 16:58:26

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

代码语言:javascript
复制
    String strContent = s;
    byte[] byteConent = strContent.getBytes();
    Blob blob = connection.createBlob();//Where connection is the connection to db object. 
    blob.setBytes(1, byteContent);
票数 2
EN

Stack Overflow用户

发布于 2013-07-01 16:53:51

如何将blob设置为DB?您应该执行以下操作:

代码语言:javascript
复制
 //imagine u have a a prepared statement like:
 PreparedStatement ps = conn.prepareStatement("INSERT INTO table VALUES (?)");
 String blobString= "This is the string u want to convert to Blob";
oracle.sql.BLOB myBlob = oracle.sql.BLOB.createTemporary(conn, false,oracle.sql.BLOB.DURATION_SESSION);
 byte[] buff = blobString.getBytes();
 myBlob.putBytes(1,buff);
 ps.setBlob(1, myBlob);
 ps.executeUpdate();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17400497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档