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
Ir a la versión completa