在Java中将char []转换为BLOB

时间:2014-06-06 10:04:42

标签: java sql binary char blob

我正在尝试创建一个将字符数组(content)转换为BLOB的方法,并相应地更新数据库系统。到目前为止,这是我的代码:

public void setFileContent(String fileName, char[] content) {

        // BLOB b = char[] content

        String sql = "UPDATE tbl_blob SET file_content=??? WHERE file_name=\"" + fileName + "\"";

}

为了将字符数组转换为BLOB,我该怎么做?

非常感谢。

2 个答案:

答案 0 :(得分:1)

有一些像BLOB的东西,看看这篇文章,也许它可以帮到你。

Blob to string and string to blob

但你也可以将char []转换为String,然后转换为byte []以将其写入BLOB

答案 1 :(得分:1)

即使使用CLOB列存储文本会更好,也完全可以使用BLOB列。由于BLOB列存储二进制数据(而不是存储文本的CLOB),因此您必须就编码达成一致。

假设您将使用UTF-8对文本进行编码,您可以使用PreparedStatement并使用setter方法设置新值和选择条件,如下所示:

PreparedStatement pstat = 
    conn.prepareStatement("UPDATE tbl_blob SET file_content=? WHERE file_name=?");

pstat.setBlob(1, new ByteArrayInputStream(new String(content).getBytes("UTF-8")));
pstat.setString(2, myFileName);
pstat.executeUpdate();