i havent done this on SQL Server, only Oracle, but basically to get a BLOB you need to open a stream to it, so use the resultSet's getBlob() method into a java.sql.Blob, then use the Blob's getBinaryStream and read from it into a buffer.
Then perform the reverse - there is a catch however. If you're updating an existing row, the select it's Blob column (remembering the 'for update' clause) get a binary stream to it a read the buffer from above into it. If your inserting a new row, then create it with an empty_blob() in the Blob field (Oracle function) and the do as the previous case, select it (for update), get it's Blob, get a binary stream and read the buffer into it.
Hope that helps - check out technet.oracle.com, there's plenty of Oracle based JDBC help there