【发布时间】:2020-01-11 21:58:47
【问题描述】:
我正在从数据库中查询一个 BLOB 对象并尝试将其写入文件系统,但我一直遇到连接关闭错误。这是代码
FileOutputStream out;
out = new FileOutputStream(filePathtoCreate+File.separator+filename);
Blob inBlob= jdbcTemplate.queryForObject("select BLOB_CONTENT from Table_A where name = ?" , Blob.class,new Object[] { filename});
InputStream in = inBlob.getBinaryStream();
byte[] buf = new byte[1024];
int len = 0;
while ((len = in.read(buf)) != -1) {
out.write(buf, 0, len);
}
in.close();
out.close();
} catch (SQLException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
当我运行这段代码时,我得到了
java.sql.SQLRecoverableException: Closed Connection
at oracle.sql.BLOB.getDBAccess(BLOB.java:1122)
at oracle.sql.BLOB.getBinaryStream(BLOB.java:265)
如果我使用常规 JDBC 连接,我不会遇到此问题,那么为什么会发生这种情况以及如何解决它。提前致谢。
【问题讨论】:
标签: java spring jdbc blob jdbctemplate