我正在尝试制作一种将字符数组(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();