This is an example of how a BLOB can be put into the database or retrieved from the database.
///////////////////////////////////////// // PutGetBlobs is an example application // that shows how to work with the JDBC // API to obtain and put BLOBs to and from // database columns. // // The results of running this program // are that there are two BLOB values // in a new table. Both are identical // and contain 500k of random byte // data. ///////////////////////////////////////// import java.sql.*; import java.util.Random; public class PutGetBlobs { public static void main(String[] args) throws SQLException { // Register the native JDBC driver. try { Class.forName("com.ibm.db2.jdbc.app.DB2Driver"); } catch (Exception e) { System.exit(1); // Setup error. } // Establish a Connection and Statement with which to work. Connection c = DriverManager.getConnection("jdbc:db2:*local"); Statement s = c.createStatement(); // Clean up any previous run of this application. try { s.executeUpdate("DROP TABLE CUJOSQL.BLOBTABLE"); } catch (SQLException e) { // Ignore it - assume the table did not exist. } // Create a table with a BLOB column. The default BLOB column // size is 1 MB. s.executeUpdate("CREATE TABLE CUJOSQL.BLOBTABLE (COL1 BLOB)"); // Create a PreparedStatement object that allows you to put // a new Blob object into the database. PreparedStatement ps = c.prepareStatement("INSERT INTO CUJOSQL.BLOBTABLE VALUES(?)"); // Create a big BLOB value... Random random = new Random (); byte [] inByteArray = new byte[500000]; random.nextBytes (inByteArray); // Set the PreparedStatement parameter. Note: This is not // portable to all JDBC drivers. JDBC drivers do not have // support when using setBytes for BLOB columns. This is used to // allow you to generate new BLOBs. It also allows JDBC 1.0 // drivers to work with columns containing BLOB data. ps.setBytes(1, inByteArray); // Process the statement, inserting the BLOB into the database. ps.executeUpdate(); // Process a query and obtain the BLOB that was just inserted out // of the database as a Blob object. ResultSet rs = s.executeQuery("SELECT * FROM CUJOSQL.BLOBTABLE"); rs.next(); Blob blob = rs.getBlob(1); // Put that Blob back into the database through // the PreparedStatement. ps.setBlob(1, blob); ps.execute(); c.close(); // Connection close also closes stmt and rs. } }