gpt4 book ai didi

java 将 Blob 插入为 ByteArrayOutputStream 获取 ClassCastException

转载 作者:行者123 更新时间:2023-12-01 18:58:06 25 4
gpt4 key购买 nike

我必须将表示为 ByteArrayOutputStream 的 pdf 文件保存到表的 Blob SQL 字段中,这是我的代码:

public boolean savePDF(int version, ByteArrayOutputStream baos) throws Exception{
boolean completed = false;
ConnectionManager conn = new ConnectionManager();
try {
PreparedStatement statement = conn.getConnection().prepareStatement(INSERT_PDF);
statement.setLong(1, version);
statement.setBlob(2, (Blob)baos);
statement.execute();
conn.commit();
completed = true;
} catch (SQLException e) {
conn.rollbackQuietly();
e.printStackTrace();
throw e;
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally{
conn.close();
}
return completed;
}

但是我得到了 java.lang.ClassCastException:

java.io.ByteArrayOutputStream cannot be cast to java.sql.Blob

我该如何处理?谢谢

最佳答案

有一个 setBlob 需要一个 InputStream,所以

ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
statement.setBlob(2, bais);

关于java 将 Blob 插入为 ByteArrayOutputStream 获取 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com