在Java中将char[]转换为BLOB

在Java中将char[]转换为BLOB,java,sql,binary,char,blob,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 + "\"";

我试图创建一个方法,将字符数组(
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,我必须做什么


非常感谢。

有点像一个斑点,看看这篇文章,也许它对你有帮助


但您也可以将char[]转换为字符串,然后转换为byte[]以将其写入BLOB

即使使用CLOB列存储文本更好,也完全可以使用BLOB列。由于BLOB列存储二进制数据(与CLOB相反,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();

我可以将char[]转换为字符串,然后将其转换为byte[]数组,然后使用该数组生成并保存BLOB吗?为什么首先使用BLOB?如果我看对了,你试着在数据库中保存一个char[],为什么不能用varchar代替BLOB呢?我正在实现的系统就是这样设计的;我应该问一下我们是否可以更改它。因此,我们的想法是将char[]转换为一个字符串,然后使用该字符串创建一个BLOB?我在java中发现了一个BLOB,我用链接编辑了我的答案。我得到了以下异常:;线程“main”java.lang.AbstractMethodError:com.mysql.jdbc.ServerPreparedStatement.setBlob(ILjava/io/InputStream;)中出现异常,这意味着您正在使用旧版本的mysql jdbc驱动程序。你能更新到新版本吗?我使用的驱动程序是v3.1.14;最新的版本是什么?当前的版本是5.1.30,但是你为什么不直接查看下载页面而不是在这里询问呢?当我意识到我已经发送了评论xp对不起