Cuando se tienen imagenes (fotografías, postales, wallpapers, etc) que se quieren guardar en una base de datos MySQL utilizando java, estas imágenes deben ser convertidas a cadenas de Bytes para que pueden ser introducidas en la base de datos, java cuenta con el objeto BLOB para realizar esto.
Pero mejor vamos a lo que interesa, que es el COMO.
Paso 1: Para este ejemplo haremos uso de una tabla "fotos" que cuenta con tres atributos entre ellos "foto" de tipo BLOB, así que debes crear esta tabla.
Paso 2: Para conectar nuestra aplicación con la base de datos nos ayudamos de nuestra clase conectate.java creada en un post anterior.
Paso 3: Una ves que tenemos la tabla creada y la clase conectate lista, crearemos un nuevo proyecto en Netbeans llamada "imagen", a este proyecto añadimos la clase conectate, java y creamos una nueva clase "fotoclass.java" esta sera la encargada de realizar las funciones de guardado. debes tener algo como esto hasta ahora.
Paso 4: Nuestra clase "fotoclass.java", con el metodo guardarfoto(), que recibe como parámetros el nombre de la foto y la ruta física de la imagen en nuestra pc. Esta función realiza una consulta sql e introduce la foto convertida previamente en bytes en la base de datos.
package imagen;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* @web http://jc-mouse.blogspot.com
* @author mouse
*/
public class fotoclass {
conectate con;
public fotoclass (){
con = new conectate();
}
public void guardarfoto(String nombre, String foto) {
{
FileInputStream fis = null;
try {
File file = new File(foto);
fis = new FileInputStream(file);
PreparedStatement pstm = con.getConnection().prepareStatement("insert into " +
" fotos(nombre, foto) " + " values(?,?)");
pstm.setString(1, nombre);
pstm.setBinaryStream(2, fis,(int) file.length());
pstm.execute();
pstm.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(fotoclass.class.getName()).log(Level.SEVERE, null, ex);
} catch (SQLException e) {
System.out.println(e);
} finally {
try {
fis.close();
} catch (IOException ex) {
Logger.getLogger(fotoclass.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}
}
Paso 5: la clase Main.
package imagen;
/**
* @web http://jc-mouse.blogspot.com
* @author mouse
*/
public class Main {
public static void main(String[] args) {
fotoclass f = new fotoclass();
f.guardarfoto("Bart Simpsons", "e:/bart.jpg");
}
}
Creamos nuestro objeto, hacemos uso de la función guardarfoto(), especificando el nombre de la imagen y la ruta física del archivo. OJO con la extensión del archivo. ejecuta el programa y la foto sera convertida e introducida a la base de datos.










0 comentarios:
Publicar un comentario