Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

4/12/09

Guardar imagen en MySQL con netbeans

JAN29

Cuando se tienen imagenes (fotografias, postales, wallpapers, etc) que se quieren guardar en una base de datos MySQL utilizando java, estas imagenes 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 intereza, que es el COMO.

nombre archivo: bart.jpg

Paso 1: Para este ejemplo haremos uso de una tabla "fotos" que cuenta con tres atributos entre ellos "foto" de tipo BLOB, asi que debes crear esta tabla.


Paso 2: Para conectar nuestra aplicacion 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 parametros, el nombre de la foto y la ruta fisica de la imagen en nuestra pc. Esta funcion 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 funcion guardarfoto(), especificando el nombre de la imagen y la ruta fisica del archivo. OJO con la extension del archivo. ejecuta  el programa y la foto sera convertida e introducida a la base de datos.












13 comentarios:

Unknown dijo...

en verdad que mis respetos men la verdad es que estan muy muy faciles de entender tus post ademas que muy utilez GRACIASS!!!!!!!!!!!!

Anónimo dijo...

Tengo un programa muy parecido pero donde debo convertir el objeto imagen a un bufferedimage , y cuando hago que se me cargue la imagen me carga una pantalla negra, y no la imagen guardada en la base de datos MySQL, y se que estan bien guardados ayudame jc mouse por fa te lo agradeceria

Mi Computadora dijo...

Ya tengo el Proyecto en netbeans 6.9
cualquiera que lo quiera solo me lo pide
esta libre
elder.alcaraz@gmail.com

Anónimo dijo...

muchas gracias por el aporte, pero tengo una duda! como incluyo en un reporte de ireport una imagen, guardada en mysql? ojala me puedas ayudar =)

Jeisson Rosas dijo...

Hola, q tal?, ojala me pueda ayudar lo que yo tengo es una imagen en un objeto de la clase Image y quiero guardarlo directamente en la base de datos, sin tener que guardarlo en un archivo para hacer todos los pasos de conversion, sabes si hay alguna forma de hacer eso?

Muchas Gracias. Saludos :)

Anónimo dijo...

Muy buen material gracias, por ejemplo yo tengo una base de datos de acces y quiero hacer lo mismo, es posible?

Anónimo dijo...

disculpa tienes un tutorial de si una vez que guarde la imagen en la base de datos ahora pueda abrir la imagen?


PD: muy buenas tus publicaciones son muy faciles de entender :D

Anónimo dijo...

Felicidades Maestro... Muy buenos Posts, seguí adelante!

Dreiko2209 dijo...

como puedo permitir que realise una busqueda en el equipo de a imagen y la suba a la base de datos

Anónimo dijo...

Hola, mil gracias por el programa, mira tengo un problema corro el programa y me marca este error:
Exception in thread "main" java.lang.NullPointerException
at fotossss.fotoclass.guardarfoto(fotoclass.java:37)
at fotossss.Main.main(Main.java:22)
Java Result: 1

La verdad soy nuevo en esto y no tengo mucha idea de este problema.
Espero tu respuesta

Anónimo dijo...

Me aparece el mismo error a mi tambien NetBeans 7.4

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Exception in thread "main" java.lang.NullPointerException
at imagen.fotoclass.guardarfoto(fotoclass.java:37)
at imagen.Imagen.main(Imagen.java:22)

A espera de tu ayuda.

Saludos.

Javier Lopez Enamorado dijo...

Muy buen post.
Gracias.

Unknown dijo...

Hola Mouse, oye una cuestión como podría guardar un documento por ejemplo un .pdf en MySQL usando java?

Post recomendado