Java JSON потоковый парсер для записи JSON в базу данных как InputStream - PullRequest
0 голосов
/ 11 июля 2019

У меня есть 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 не разбирает, выдается исключение?

Я не хочу писать свои собственные или перестраивать поток, если мне это не нужно, но я не могу найти ничего доступного, что сделало бы это с необходимостью большого количества дополнительного кода.

Примечание. Я не могу полностью прочитать объект в память. Это должно быть потоковое решение.

...