У меня есть API отдыха, который записывает InputStream тела сообщения непосредственно в базу данных, используя PreparedStatement, вот так:
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. Есть ли способ, которым я могу обернуть этот inputStream с jsonParser InputStream? Так что если json не разбирает, выдается исключение?
Я не хочу писать свои собственные или перестраивать поток, если мне это не нужно, но я не могу найти ничего доступного, что сделало бы это с необходимостью большого количества дополнительного кода.
Примечание. Я не могу полностью прочитать объект в память. Это должно быть потоковое решение.