我正在尝试制作一种将字符数组(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,我该怎么做?

非常感谢。

最佳答案

即使使用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();

10-08 15:32