Example: BLOB
This is an example of how a BLOB can be put into the database or retrieved from the database.
Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.
/////////////////////////////////////////
// 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
{
// 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.
}
}