我正在尝试创建一个将字符数组(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,我该怎么做?
非常感谢。
答案 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();