我有一个rest API,可以使用PreparedStatement将帖子正文的InputStream直接写到数据库中,如下所示:
public void store(String id, InputStream body) throws SQLException, SPSException {
if(id == null || id.length() == 0)
throw new SPSException("get: id is missing: " + id);
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
Parameters parameters = Parameters.parse("insert into properties (id, body) values (?,?)");
ps = conn.prepareStatement( parameters.getSQL() );
ps.setString(1, id );
ps.setBlob(2, body);
ps.executeUpdate();
conn.commit();
} finally {
close( ps );
close( conn );
}
}
setBlob调用采用InputStream。有没有一种方法可以用jsonParser InputStream包装此inputStream?这样,如果json无法解析,则会引发异常?
如果不需要,我不需要自己编写或重建流,但是我找不到任何可用的方法来满足此需要,而这需要大量额外的代码。
注意-我无法将对象完整地读取到内存中。它必须是流解决方案。