/** {@inheritDoc} */ protected void setStatementParameterValue( PreparedStatement statement, int sqlIndex, int typeCode, Object value) throws SQLException { if (value != null) { if ((value instanceof byte[]) && ((typeCode == Types.BINARY) || (typeCode == Types.VARBINARY) || (typeCode == Types.BLOB))) { byte[] bytes = (byte[]) value; ByteArrayInputStream stream = new ByteArrayInputStream(bytes); statement.setBinaryStream(sqlIndex, stream, bytes.length); return; } else if ((value instanceof String) && ((typeCode == Types.CLOB) || (typeCode == Types.LONGVARCHAR))) { // Clob is not supported directly statement.setString(sqlIndex, (String) value); return; } } super.setStatementParameterValue(statement, sqlIndex, typeCode, value); }
/** {@inheritDoc} */ protected void setObject( PreparedStatement statement, int sqlIndex, DynaBean dynaBean, SqlDynaProperty property) throws SQLException { int typeCode = property.getColumn().getTypeCode(); Object value = dynaBean.get(property.getName()); // PostgreSQL doesn't like setNull for BYTEA columns if (value == null) { switch (typeCode) { case Types.BINARY: case Types.VARBINARY: case Types.LONGVARBINARY: case Types.BLOB: statement.setBytes(sqlIndex, null); break; default: statement.setNull(sqlIndex, typeCode); break; } } else { super.setObject(statement, sqlIndex, dynaBean, property); } }