Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > JAVA
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-09-2010
lince_36 lince_36 is offline
Miembro
 
Registrado: mar 2010
Posts: 12
Poder: 0
lince_36 Va por buen camino
Como recuperar imagen de Mysql en Java?

Saludos amigos, tengo un sencillo form donde inserto imagenes utilizando un jfilechooser.

Al abrir la imagen con el jfilechooser esta se pinta en un label, esto con el fin de que el usuario pueda estar seguro de que esta imagen es la que quiere o sencillamente para saber si es la correcta.

En la base de datos el campo es del tipo BLOB y estoy utilizando Mysql.

Al insertar las imagenes estas se guardan como un archivo binario, y segun leei eso es correcto.
Ahora necesito saber como hacerle para recuperar o mas bien traer X imagen y pintarla en un label o en lo que sea.

Esto seria para realizar una consulta, por ejemplo si de un combobox selecciono al usuario XXXX y presiono en Consultar en un jtable me aparecen todos sus datos como nombre,direccion,telefono,etc, mas aparte me gustaria que tambien me aparezca su fotografia en un label.

Entonces esta es mi duda, como hacer para jalar o mostrar esas imagenes que ya tengo en la BD.

Saludos
Responder Con Cita
  #2  
Antiguo 07-09-2010
lince_36 lince_36 is offline
Miembro
 
Registrado: mar 2010
Posts: 12
Poder: 0
lince_36 Va por buen camino
Lo he intentado de la siguiente forma

Código PHP:
res=sen.executeQuery("SELECT * FROM  fotos;");
          
Image i=null;

    
Blob blob res.getBlob("foto");

ImageIcon image = new ImageIcon(
blob.getBytes(1,(int)blob.length()));


ijavax.imageio.ImageIO.read(blob.getBinaryStream());

label.setIcon(image); 
Y no me hace nada.

Saludos
Responder Con Cita
  #3  
Antiguo 11-09-2010
Avatar de Negriz
Negriz Negriz is offline
Miembro
 
Registrado: feb 2008
Ubicación: Some were inside Colombia
Posts: 123
Poder: 17
Negriz Va por buen camino
Smile Hola!

Trata con este codigo, recuerdo que lo saque de: http://chuwiki.chuidiang.org pero no encontre el link asi que te dejo el code.
Código:
public javax.swing.ImageIcon getImage(int idClub) {
        javax.swing.ImageIcon image = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            java.sql.Connection conexion = java.sql.DriverManager.getConnection("jdbc:mysql://etc");//Conecta!
            java.sql.Statement s = conexion.createStatement();
            java.sql.PreparedStatement ps;
            String sql = "SELECT IMAGEN FROM TABLA WHERE CONDICION";//Reemplaza tu sql
            ps = conexion.prepareStatement(sql);
            java.sql.ResultSet rs = ps.executeQuery();
            if (rs.next()) {//solo quiero la primera imagen =P
                java.sql.Blob blob = rs.getBlob(1);
                if (blob != null) {
                    java.io.ObjectInputStream ois = new java.io.ObjectInputStream(blob.getBinaryStream());
                    image = (javax.swing.ImageIcon) ois.readObject();
                }
            }
           rs.close();
           conexion.close();
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
        return image;
    }
Por cierto, una sugerencia: controla el tamaño de la imagen ya que es posible que el ImageIcon (o label con icon) supere el tamaño del Blob de mysql en Bytes.

Un saludo.
__________________
Gracias!
Responder Con Cita
  #4  
Antiguo 14-09-2010
lince_36 lince_36 is offline
Miembro
 
Registrado: mar 2010
Posts: 12
Poder: 0
lince_36 Va por buen camino
La solucion a mi problema ya casi la tenia, solo hacia falta agregar algo al query, este queda asi:

Código PHP:
 String id_foto=tes.getText();
        try
{
   
res=sen.executeQuery("SELECT foto FROM fotos where id_foto='" id_foto "'");
            
    if(
res.next())
    {
        
Image i=null;
        
Blob blob res.getBlob("foto");
        
ijavax.imageio.ImageIO.read(blob.getBinaryStream());
        
ImageIcon image = new ImageIcon(i);
        
lbl1.setIcon(image);
    }
}
catch(
Exception e)
{
    
JOptionPane.showMessageDialog(this,e.getMessage());

Y funciona perfecto.

Saludos
Responder Con Cita
  #5  
Antiguo 14-09-2010
lince_36 lince_36 is offline
Miembro
 
Registrado: mar 2010
Posts: 12
Poder: 0
lince_36 Va por buen camino
Y para controlar el tamaño de la imagen, mas bien para redimensionarla hago lo siguiente:

Código PHP:
if(image.getIconHeight() > 342 || image.getIconWidth() > 230){
               
ImageIcon imageScalada = new ImageIcon(image.getImage().getScaledInstance(90100100));
              
lbl1.setIcon(imageScalada);
            }
           else{
                
lbl1.setIcon(image);
           } 
Y funciona perfecto.

Saludos

Espero que a usuarios futuros les sirva esto.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como insertar una imagen en un formulario de java JuanErasmo JAVA 1 25-08-2007 17:50:09
Error recuperar imagen en MySQL desde Firefox axelbb PHP 3 08-06-2007 14:51:53
Recuperar IMAGEN de un QUERY natalinuyo Gráficos 31 12-02-2007 23:22:22
Cómo almacenar, editar y recuperar una archivo de imagen guardado en la base de datos JKM MS SQL Server 0 03-05-2006 22:29:41
Cargar y recuperar imagen en bd MySQL??? burasu MySQL 2 22-08-2004 22:40:18


La franja horaria es GMT +2. Ahora son las 12:06:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi