Guardar y mostrar imágenes de la base de datos usando el banco de trab

Guardar y mostrar imágenes de la base de datos usando el banco de trabajo MySQL

Buen día, estaba intentando subir una imagen a mi base de datos, pero cuando intento recuperar la imagen, no aparece nada...

Aquí está mi código para subir la imagen

String m_dataForImage;
public String getDataForImage() { return m_dataForImage; }
public void setDataForImage(String value) { this.m_dataForImage = value; }


String m_ShowPhoto;
public String getShowPhoto() { return m_ShowPhoto; }
public void setShowPhoto(String value) { this.m_ShowPhoto = value; }

String m_fileName;
public String getFileName() { return m_fileName; }
public void setFileName(String value) { this.m_fileName = value; }

public void onUploadFile(javax.faces.event.ActionEvent event) {
    if (event instanceof BaseActionEventUpload){
        try{
            ConnectionPool.getInstance();
            Base.open(ConnectionPool.dataSourcePooled);

            BaseActionEventUpload bae =(BaseActionEventUpload)event;
            setFileName(bae.getClientFileName());
            m_ShowPhoto = bae.getHexByteString();
            byte[] imageByte = bae.getHexBytes();
            setShowPhoto("/hex("+ValueManager.encodeHexString(imageByte)+")");//trying to convert byte to hex

            photo_storage photo = new photo_storage();
                photo.set("timestamp","ss");
                photo.set("Primary_Key", "123");
                photo.set("File_Name",getFileName());
                photo.set("Image_Data",getShowPhoto());

            photo.saveIt();



        }catch(Throwable t){
            t.printStackTrace();
            Statusbar.outputAlert(t.toString());
        }finally {
            Base.close();
        }
    }
}

y por mostrar la imagen:

public void onShowImage(javax.faces.event.ActionEvent event) {
        try{
            ConnectionPool.getInstance();
            Base.open(ConnectionPool.dataSourcePooled);

            List<photo_storage> photo = photo_storage.where("Primary_Key = ?",123);
            for (photo_storage so:photo){ setShowPhoto("/hex("+ValueManager.encodeHexString(so.getBytes("Image_Data"))+")");
                setFileName(so.getString("File_Name"));
                setDataForImage(so.getString("Image_Data"));

        }catch(Throwable t){
            t.printStackTrace();
            Statusbar.outputAlert(t.toString());
        }finally {
            Base.close();
        }
}

Actualmente estoy usando Intellij y CaptainCasa..

¿Alguien puede ayudar? Gracias por adelantado.

Mostrar la mejor respuesta

Parece que debería ser

    photo.set("Image_Data",imageByte);

en lugar de

    photo.set("Image_Data",getShowPhoto());

porque imageByte es donde se almacena la imagen cargada.