/** * Registers the given {@link Cleanable} to be executed when this statement is closed. * * @param cleanable the cleanable to register * @return this */ This addCleanable(Cleanable cleanable) { getContext().addCleanable(cleanable); return typedThis; }
ResultSetResultIterator(ResultSet results, RowMapper<T> mapper, StatementContext context) throws SQLException { this.results = requireNonNull(results); this.mapper = mapper.specialize(results, context); this.context = context; this.context.addCleanable(results::close); }
private static Supplier<ResultSet> getGeneratedKeys(Supplier<PreparedStatement> supplier, StatementContext ctx) { return () -> { try { ResultSet rs = supplier.get().getGeneratedKeys(); if (rs == null) { throw new NoResultsException("Statement returned no generated keys", ctx); } ctx.addCleanable(rs::close); return rs; } catch (SQLException e) { throw new ResultSetException("Could not get generated keys", e, ctx); } }; }
@Override public void apply(int position, PreparedStatement statement, StatementContext ctx) throws SQLException { SqlArrayArgumentStrategy argumentStyle = ctx.getSqlArrayArgumentStrategy(); switch (argumentStyle) { case SQL_ARRAY: java.sql.Array sqlArray = statement.getConnection().createArrayOf(typeName, array); ctx.addCleanable(sqlArray::free); statement.setArray(position, sqlArray); break; case OBJECT_ARRAY: statement.setObject(position, array); break; default: throw new UnsupportedOperationException("Unknown array argument style " + argumentStyle); } }
private static Supplier<ResultSet> getResultSet(Supplier<PreparedStatement> supplier, StatementContext ctx) { return () -> { try { ResultSet rs = supplier.get().getResultSet(); if (rs == null) { if (ctx.getConfig(ResultProducers.class).allowNoResults) { return new EmptyResultSet(); } throw new NoResultsException("Statement returned no results", ctx); } ctx.addCleanable(rs::close); return rs; } catch (SQLException e) { throw new ResultSetException("Could not get result set", e, ctx); } }; }
ResultSetResultIterator(ResultSet results, RowMapper<T> mapper, StatementContext context) throws SQLException { this.results = requireNonNull(results); this.mapper = mapper.specialize(results, context); this.context = context; this.context.addCleanable(results::close); }
/** * Registers the given {@link Cleanable} to be executed when this statement is closed. * * @param cleanable the cleanable to register * @return this */ This addCleanable(Cleanable cleanable) { getContext().addCleanable(cleanable); return typedThis; }
private static Supplier<ResultSet> getResultSet(Supplier<PreparedStatement> supplier, StatementContext ctx) { return () -> { try { ResultSet rs = supplier.get().getResultSet(); if (rs == null) { throw new NoResultsException("Statement returned no results", ctx); } ctx.addCleanable(rs::close); return rs; } catch (SQLException e) { throw new ResultSetException("Could not get result set", e, ctx); } }; }
@Override public void apply(int position, PreparedStatement statement, StatementContext ctx) throws SQLException { SqlArrayArgumentStrategy argumentStyle = ctx.getSqlArrayArgumentStrategy(); switch(argumentStyle) { case SQL_ARRAY: java.sql.Array sqlArray = statement.getConnection().createArrayOf(typeName, array); ctx.addCleanable(sqlArray::free); statement.setArray(position, sqlArray); break; case OBJECT_ARRAY: statement.setObject(position, array); break; default: throw new UnsupportedOperationException("Unknown array argument style " + argumentStyle); } } }
private static Supplier<ResultSet> getGeneratedKeys(Supplier<PreparedStatement> supplier, StatementContext ctx) { return () -> { try { ResultSet rs = supplier.get().getGeneratedKeys(); if (rs == null) { throw new NoResultsException("Statement returned no generated keys", ctx); } ctx.addCleanable(rs::close); return rs; } catch (SQLException e) { throw new ResultSetException("Could not get generated keys", e, ctx); } }; }