Recuperar una imagen almacenada como BLOB en una base de datos MYSQL

Intento crear un PDF basado en la información que reside en una base de datos. Saber que necesito recuperar una imagen TIFF que está almacenada como BLOB en una base de datos mysql de Java. Y no sé cómo hacerlo. Los ejemplos que he encontrado muestran cómo recuperarlo y guardarlo como un archivo (pero en el disco) y necesitaba residir en la memoria.

Nombre de la tabla: IMAGENES_REGISTROS

BLOB Nombre del campo: IMAGEN

¿Algunas ideas?

En su llamada ResultSet :

 Blob imageBlob = resultSet.getBlob(yourBlobColumnIndex); InputStream binaryStream = imageBlob.getBinaryStream(0, imageBlob.length()); 

Alternativamente, puedes llamar:

 byte[] imageBytes = imageBlob.getBytes(1, (int) imageBlob.length()); 

Como señaló BalusC en su comentario, será mejor que use:

 InputStream binaryStream = resultSet.getBinaryStream(yourBlobColumnIndex); 

Y luego el código depende de cómo va a leer e insertar la imagen.

 private void loadFileDataBlobFromDataBase() { List bFile = jdbcTemplate.query(sql, new RowMapper() { @Override public Blob mapRow(ResultSet rs, int rowNum) throws SQLException { return rs.getBlob(1); } }); if (bFile != null && bFile.size() > 0) { bufReader = new BufferedReader(new InputStreamReader(bFile.get( 0).getBinaryStream())); } if (null != bufReader) { dataVO record = null; String lineStr = bufReader.readLine(); record = (dataVO) lineMapper.mapLine(lineStr, 1); } } } 
 imagebytes = rs.getBytes("images"); image=getToolkit().createImage(imageBytes); Image img = image.getScaledInstance(100,100,Image.SCALE_SMOOTH); ImageIcon icon=new ImageIcon(img); jLabel6.setIcon(icon); 

Pruebe este código para obtener una imagen ajustable del blog Mysql en netbeans

 final String dbURL = "jdbc:mysql://localhost:3306/portfolio"; final String dbUser = "root"; final String dbPass = ""; Connection conn = null; Statement stmt = null; try { //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(dbURL, dbUser, dbPass); System.out.println("db connected"); stmt = (Statement) conn.createStatement(); ResultSet rs1; rs1 = stmt.executeQuery("select profileImage from tbl_welcome where id = 1117"); if (rs1.next()) { byte[] imgData = rs1.getBytes("profileImage");//Here....... r1.getBytes() extract byte data from resultSet System.out.println(imgData); response.setHeader("expires", "0"); response.setContentType("image/jpg"); OutputStream os = response.getOutputStream(); // output with the help of outputStream os.write(imgData); os.flush(); os.close(); } } catch (SQLException ex) { // String message = "ERROR: " + ex.getMessage(); ex.printStackTrace(); } finally { if (conn != null) { // closes the database connection try { conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } } }