Ver Mensaje Individual
  #3 (permalink)  
Antiguo 03/03/2009, 08:33
NightWarriorMx
 
Fecha de Ingreso: marzo-2009
Mensajes: 3
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Guardar Imagen Binaria

Tengo algo similar pero con un JButon o lo que necitas hacer es crearte una variable de tipo imagen. para poder manipularla tanto en el JPanel como en las sentencias SQL....
Te pongo mi un ejemplo...

public boolean addImagenEmpleado(Image img,int numemp,String dir_f)
{
try
{
File f=new File("./data/personal/tmp.mmm");
try{
BufferedImage imgb= new BufferedImage(img.getWidth(null) , img.getHeight(null) , BufferedImage.TYPE_INT_ARGB );
imgb.getGraphics().drawImage(img,0,0,null);

ImageIO.write(imgb, "jpg",f);
}catch(IOException er){System.out.print("\n no se pudo grabar la imagen");};
ResultSet rs=st1.executeQuery("SELECT num_t FROM imagen WHERE num_t="+numemp);


FileInputStream simg =new FileInputStream("./data/personal/tmp.mmm");


if(rs.next())
{
if(rs.getString(1).equals(String.valueOf(numemp)))
{
PreparedStatement ps= con1.prepareStatement("UPDATE imagen SET ima_t = ? , dir_file = ? WHERE num_t = ?" );
System.out.println("El trabajador modificado es "+numemp);
ps.setBinaryStream(1,simg,(int)f.length());
ps.setString(2,dir_f);
ps.setString(3,String.valueOf(numemp));
ps.execute();
System.out.print("Ejecutando");
}
}
else
{
PreparedStatement ps= con1.prepareStatement("INSERT INTO imagen (num_t,ima_t, dir_file) VALUES (?,?,?)" );
ps.setString(1,String.valueOf(numemp));
System.out.print("Agrego el numero");
ps.setBinaryStream(2,simg,(int)f.length());
ps.setString(3,dir_f);

System.out.print("Agrego la imagen");
ps.execute();
System.out.print("Ejecutando");
}


}catch(SQLException e){System.out.println("Error(Envio de Imagen): "+e.toString());}
catch(FileNotFoundException e){System.out.println("Error(Ficehro): "+e.toString());}

return false;
}



y la funcion para recuperarla es

public Image showIma(int id)
{
try
{
ResultSet rs=st1.executeQuery("SELECT ima_t FROM imagen WHERE num_t = "+id );
if(rs.next())
{
ImageIcon im =new ImageIcon(rs.getBytes(1)); //secrea un icon imagen.. que es capaz de generar una imagen.
return(im.getImage()); //se genera la imagen a travez de el icon imagen y se guarda en el componente o bien se puede retornar para que se pueda utilizar por cualquier otro componente
}
}catch(SQLException e){System.out.println("\nError (getPasswordEmpleado): "+e.toString()+"\n");}
return(null);
}

Última edición por NightWarriorMx; 03/03/2009 a las 08:51