@Override public int[] batchUpdate(final String sql, final Stream<Object[]> args) throws JpoException { return sqlPerformerStrategy.batchUpdate(sql, args.map(values -> { Object[] unwrappedValues = new Object[values.length]; for (int i=0; i<values.length; i++) { Object object = values[i]; if (object!=null) { TypeConverterJdbcReady<Object, Object> typeWrapper = (TypeConverterJdbcReady<Object, Object>) typeFactory.getTypeConverter(object.getClass()); unwrappedValues[i] = typeWrapper.toJdbcType(object); } } return unwrappedValues; })); }
@Override public void set(final PreparedStatement ps) throws SQLException { if (logger.isDebugEnabled()) { logger.debug("Query params: " + Arrays.asList(args)); //$NON-NLS-1$ } int index = 0; for (Object object : args) { if (object!=null) { TypeConverterJdbcReady<Object, Object> typeWrapper = (TypeConverterJdbcReady<Object, Object>) typeFactory.getTypeConverter(object.getClass()); typeWrapper.getJdbcIO().setValueToPreparedStatement( typeWrapper.toJdbcType(object) , ps, ++index); } else { ps.setObject(++index, object); } } } }
@Override public void set(final PreparedStatement ps) throws SQLException { if (logger.isDebugEnabled()) { logger.debug("Query params: " + args); //$NON-NLS-1$ } int index = 0; for (Object object : args) { if (object!=null) { TypeConverterJdbcReady<Object, Object> typeWrapper = (TypeConverterJdbcReady<Object, Object>) typeFactory.getTypeConverter(object.getClass()); typeWrapper.getJdbcIO().setValueToPreparedStatement( typeWrapper.toJdbcType(object) , ps, ++index); } else { ps.setObject(++index, object); } } }
@SuppressWarnings("unchecked") protected void setToStatement(final int index, final Object value, final Statement statement) { if (value != null) { final TypeConverter<Object, Object> typeWrapper = (TypeConverter<Object, Object>) getTypeFactory().getTypeConverter(value.getClass()); typeWrapper.getJdbcIO().setValueToPreparedStatement(typeWrapper.toJdbcType(value), statement, index); } else { statement.setObject(index, value); } }