Java - Imagenes MySQL

 
Vista:
sin imagen de perfil

Imagenes MySQL

Publicado por Francisco (1 intervención) el 07/11/2016 05:47:46
Buenas compañeros...

Veran, estoy en un proyecto escolar de un sistema para gestion del personal de un empresa. Ya tengo la BD armada y las ventanas tambien. Ya hace "SELECT, UPDATE, DELETE" con los datos pero no he podido hacer que guarde las imagenes en la BD. He estado viendo un monton de tutos pero no he podido (Distan mucho de lo que yo tengo y como soy nuevo en Java me confundo mas jeje)

Les agrego parte de mi codigo, a ver si ayuda un poco:
Boton Guardar (Este boton guardaria todos los datos junto con la foto en la BD)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int num_empleado = Integer.parseInt(txtNumEmpleado.getText());
String ap_paterno = txtApellidoPaterno.getText();
String ap_materno = txtApellidoMaterno.getText();
String nombre = txtNombre.getText();
String estado_civil = (String) cmbEstadoCivil.getSelectedItem();
String direccion = txtDireccion.getText();
String telefono = txtTelefono.getText();
String fecha_nac = txtFechaNac.getText();
String area = txtArea.getText();
int salario = Integer.parseInt(txtSalario.getText());
String inicio_contrato = txtInicioContrato.getText();
String venc_contrato = txtVencimientoContrato.getText();
 
 
if(crud.insert(num_empleado, ap_paterno, ap_materno,
    nombre, estado_civil, direccion, telefono,
    fecha_nac, area, salario, inicio_contrato, venc_contrato)){
    JOptionPane.showMessageDialog(this, "Personal registrado con exito.", "Añadir personal", JOptionPane.INFORMATION_MESSAGE);
    LimpiarTodo();
}else{
    JOptionPane.showMessageDialog(this, "Error al registrar los datos.", "Añadir personal", JOptionPane.ERROR_MESSAGE);
}


y con este otro hice el cuadro de dialogo para cargar la imagen en un label:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
lblfoto.setIcon(null);
FileNameExtensionFilter filtro = new FileNameExtensionFilter("Formatos de Archivos JPEG(*.JPG;*.JPEG)", "jpg", "jpeg");
JFileChooser j = new JFileChooser();
j.addChoosableFileFilter(filtro);
j.setFileSelectionMode(JFileChooser.FILES_ONLY);//solo archivos y no carpetas
int estado=j.showOpenDialog(null);
if(estado== JFileChooser.APPROVE_OPTION){
    try{
        fis = new FileInputStream(j.getSelectedFile());
        //necesitamos saber la cantidad de bytes
        this.longitudBytes=(int)j.getSelectedFile().length();
        try {
            Image icono=ImageIO.read(j.getSelectedFile()).getScaledInstance
                    (lblfoto.getWidth(),lblfoto.getHeight(),Image.SCALE_DEFAULT);
            lblfoto.setIcon(new ImageIcon(icono));
            lblfoto.updateUI();
 
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(rootPane, "imagen: "+ex);
        }
    }catch(FileNotFoundException ex){
        ex.printStackTrace();
    }
}

Tambien tengo este fragmento de codigo de un proyecto que baje pero no se como combinarlo con el que ya tengo para que funcione:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
try{
    String sql="INSERT INTO \"Persona\"(codigo, nombre, foto) VALUES (?, ?, ?)";
 
    PreparedStatement ps=con.getConexion().prepareStatement(sql);
    ps.setInt(1,Integer.parseInt(txtcodigo.getText()));
    ps.setString(2,txtnombre.getText());
    ps.setBinaryStream(3,fis,longitudBytes);
 
    ps.execute();
    ps.close();
 
    lblfoto.setIcon(null);
    txtcodigo.setText("");
    txtnombre.setText("");
 
    JOptionPane.showMessageDialog(rootPane,"Guardado correctamente");
}catch(SQLException | NumberFormatException | HeadlessException x){
    JOptionPane.showMessageDialog(rootPane, "exception 2 "+x);
}

Les agradeceria que algun alma caritativa me ayudara.
De antemano, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 87
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Imagenes MySQL

Publicado por Tomas (76 intervenciones) el 14/11/2016 14:25:52
Nunca jamás se guardan imagenes en crudo en una bbdd, relentizan las consultas. Lo que se guarda es el enlace a la carpeta de donde está. Puede ser de internet , de una directorio local del pc, etc.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar