Programación General > Java

 Problema Al Cargar Imagen Desde Java En Mysql

(1/1)

david.rguez:
En una parte de mi aplicación, el usuario debe poder adjuntar una pequeña imagen a un registro de la base de datos, en un campo blob.

El caso es que hasta llegar al SQL todo va bien, utilizo FormFile para cargar la imagen desde el cliente y le paso el byte[] extraído mediante el método getFileData() y lo guarda bien en la variable (al menos, el tamaño es idéntico al de la imagen original); pero al ir a guardarlo en la BBDD, no lo hace, sino que ese campo blob se queda como null.

Esta es la parte del código que se encarga de almacenarlo:


--- Código: Text ---  consulta = "UPDATE proyectos SET titulo=?,resumen=?,cod_categoria=?,bibliografia=?, claves=?"; // Si tenemos imagen y no debíamos eliminarla...if ((!eliminaImagen) && (imagen != null))      consulta = consulta + ", imagen=?"; consulta = consulta + " WHERE cod_proyecto=? AND validado = ? AND desactivado = ?";        if (cod_tipo != 1)      consulta = consulta + " AND cerrado = ?"; stmnP2 = conn.prepareStatement(consulta);// Asignación de parámetrosstmnP2.setString(1,titulo);stmnP2.setString(2,resumen);stmnP2.setInt(3,cod_categoria);stmnP2.setString(4,bibliografia);stmnP2.setString(5,claves);if ((!eliminaImagen) && (imagen != null)){       stmnP2.setBytes(6,imagen);       stmnP2.setInt(7,cod_proyecto);       stmnP2.setString(8,"S");       stmnP2.setString(9,"N");       if (cod_tipo != 1)             stmnP2.setString(10,"S");}else {            stmnP2.setInt(6,cod_proyecto);            stmnP2.setString(7,"S");            stmnP2.setString(8,"N");                if (cod_tipo != 1)                  stmnP2.setString(9,"N");} // Ejecución de la consultaresultadoP2 = stmnP2.executeUpdate();   

He ido paso por paso ejecutando el programa y en ningún momento se pierde el valor de la variable "imagen", y el resultado del UPDATE no marca ningún error y tampoco se lanzan excepciones.

¿Alguien sabría decirme por qué no se almacenan?

david.rguez:
Ya nada, resultó que el error estaba en el último de los parámetros, que debía ser una N en lugar de una S (en el décimo) (sí, una tontería, pero eso determinaba que se buscase en el grupo de registros contrario al correcto).

Estos son los errores que más me fastidian: los que duran varios dias hasta que descubres que era la mayor chorrada del mundo >_<

Navegación

[0] Índice de Mensajes

Ir a la versión completa