JSP-страница: как преобразовать BLOB - объект из mysql в bufferedimage
Мне удается сохранить мой BufferedImage в mysql db как BLOP с помощью ByteArrayOutputStream.
Но теперь я хочу получить и преобразовать обратно в исходное BufferedImage, как мне это сделать? Ниже приведено то, что я пробовал, но результат (BufferedImage) неверен.
Что я уже пробовал:
Загрузка в базу данных:
ByteArrayOutputStream outClean = new ByteArrayOutputStream(); ImageIO.write(imgClean, "png", outClean); byte[] bufClean = outClean.toByteArray(); // setup stream for blob ByteArrayInputStream streamClean = new ByteArrayInputStream(bufClean); String sql = "INSERT INTO users (userName, userCleanImage)" + "VALUES (?, ?)"; PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, username); statement.setBinaryStream(2, streamClean, streamClean.available()); int n = statement.executeUpdate();
Извлечение из базы данных
ResultSet rs = null; BufferedImage bufImg = null; try { String sql = "Select userCleanImage from users" + "where userName = ?"; PreparedStatement statement = conn.prepareStatement(sql); statement.setString(1, username); rs = statement.executeQuery(); Blob aBlob = rs.getBlob("userCleanImage"); InputStream is = aBlob.getBinaryStream(0, aBlob.length()); bufImg = ImageIO.read(is); return bufImg; } catch (SQLException e) { }catch (IOException io) { }