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