olá pessoal, eu queria saber como posso salvar a imagem no banco de dados.
Este é o código do modelo
package modelo;
import java.sql.Date;
/**
*
* @author Carlos
*/
public class Funcionario {
private int id_funcionario ;
private String nome_funcionario;
private String cpf_funcionario;
private String rg_funcionario;
private String email_funcionario;
private String endereco_funcionario ;
private String telefone_funcionario;
private String telefone2_funcionario;
private int idade_funcionario;
private Date data_nascimento_funcionario;
private String sexo_funcionario;
private String turno;
private String cargo;
private double salario;
private byte[] foto_funcionario;
private String senha;
public int getId_funcionario() {
return id_funcionario;
}
public void setId_funcionario(int id_funcionario) {
this.id_funcionario = id_funcionario;
}
public String getNome_funcionario() {
return nome_funcionario;
}
public void setNome_funcionario(String nome_funcionario) {
this.nome_funcionario = nome_funcionario;
}
public String getCpf_funcionario() {
return cpf_funcionario;
}
public void setCpf_funcionario(String cpf_funcionario) {
this.cpf_funcionario = cpf_funcionario;
}
public String getRg_funcionario() {
return rg_funcionario;
}
public void setRg_funcionario(String rg_funcionario) {
this.rg_funcionario = rg_funcionario;
}
public String getEmail_funcionario() {
return email_funcionario;
}
public void setEmail_funcionario(String email_funcionario) {
this.email_funcionario = email_funcionario;
}
public String getEndereco_funcionario() {
return endereco_funcionario;
}
public void setEndereco_funcionario(String endereco_funcionario) {
this.endereco_funcionario = endereco_funcionario;
}
public String getTelefone_funcionario() {
return telefone_funcionario;
}
public void setTelefone_funcionario(String telefone_funcionario) {
this.telefone_funcionario = telefone_funcionario;
}
public String getTelefone2_funcionario() {
return telefone2_funcionario;
}
public void setTelefone2_funcionario(String telefone2_funcionario) {
this.telefone2_funcionario = telefone2_funcionario;
}
public int getIdade_funcionario() {
return idade_funcionario;
}
public void setIdade_funcionario(int idade_funcionario) {
this.idade_funcionario = idade_funcionario;
}
public Date getData_nascimento_funcionario() {
return data_nascimento_funcionario;
}
public void setData_nascimento_funcionario(Date data_nascimento_funcionario) {
this.data_nascimento_funcionario = data_nascimento_funcionario;
}
public String getSexo_funcionario() {
return sexo_funcionario;
}
public void setSexo_funcionario(String sexo_funcionario) {
this.sexo_funcionario = sexo_funcionario;
}
public String getTurno() {
return turno;
}
public void setTurno(String turno) {
this.turno = turno;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public byte[] getFoto_funcionario() {
return foto_funcionario;
}
public void setFoto_funcionario(byte[] foto_funcionario) {
this.foto_funcionario = foto_funcionario;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
}
Este é a classe DAO, que salva no banco de dados.
package DAO;
import connection.ConnectionFactory;
import java.io.FileInputStream;
import java.sql.PreparedStatement;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modelo.Funcionario;
/**
*
* @author Carlos
*/
public class FuncionarioDAO {
public void salvar(Funcionario f){
Connection con = ConnectionFactory.getConnection();
PreparedStatement stmt = null;
try {
stmt = con.prepareStatement("INSERT INTO funcionario(nome_funcionario,email_funcionario,cpf_funcionario,rg_funcionario,data_nascimento_funcionario,idade_funcionario,telefone_funcionario,telefone2_funcionario,endereco_funcionario,sexo_funcionario,cargo,turno,salario,senha,foto_funcionario)VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
stmt.setString(1, f.getNome_funcionario());
stmt.setString(2, f.getEmail_funcionario());
stmt.setString(3, f.getCpf_funcionario());
stmt.setString(4, f.getRg_funcionario());
stmt.setDate(5, new java.sql.Date (f.getData_nascimento_funcionario().getTime()));
stmt.setInt(6, f.getIdade_funcionario());
stmt.setString(7, f.getTelefone_funcionario());
stmt.setString(8, f.getTelefone2_funcionario());
stmt.setString(9, f.getEndereco_funcionario());
stmt.setString(10, f.getSexo_funcionario());
stmt.setString(11, f.getCargo());
stmt.setString(12, f.getTurno());
stmt.setDouble(13, f.getSalario());
stmt.setString(14, f.getSenha());
stmt.setBytes(15, f.getFoto_funcionario());
stmt.executeUpdate();
JOptionPane.showMessageDialog(null,"Cadastrado com sucesso!");
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null,"Erro ao cadastrar: "+ex);
}finally{
ConnectionFactory.closeConnection(con, stmt);
}
}
Esse é o código do botão para escolher a foto
JFileChooser jfc = new JFileChooser();
jfc.setDialogTitle("Selecionar arquivo");
jfc.setFileFilter(new FileNameExtensionFilter("Arquivo de imagens(*.PNG,*.JPG,*.JPEG)","png","jpg","jpeg"));
int resultado = jfc.showOpenDialog(this);
if (resultado == JFileChooser.APPROVE_OPTION){
File selectedFile = jfc.getSelectedFile();
try{
fis = new FileInputStream(jfc.getSelectedFile());
tamanho = (int) jfc.getSelectedFile().length();
Image foto = ImageIO.read(jfc.getSelectedFile()).getScaledInstance(lblfoto.getWidth(), lblfoto.getHeight(), Image.SCALE_SMOOTH);
lblfoto.setIcon(new ImageIcon(foto));
lblfoto.updateUI();
byte[] fileData = new byte[(int) selectedFile.length()];
try (FileInputStream fis = new FileInputStream(selectedFile)) {
fis.read(fileData);
}
} catch (Exception e) {
System.out.println(e);
}
}
E este é o botão salvar
Funcionario f = new Funcionario();
FuncionarioDAO dao = new FuncionarioDAO();
f.setNome_funcionario(nome.getText());
f.setCpf_funcionario(CPF.getText());
f.setRg_funcionario(RG.getText());
f.setEmail_funcionario(email.getText());
f.setEndereco_funcionario(end.getText());
f.setTelefone_funcionario(cel.getText());
f.setTelefone2_funcionario(tel.getText());
f.setData_nascimento_funcionario(new java.sql.Date(data.getDate().getTime()));
f.setIdade_funcionario(Integer.parseInt(ida.getText()));
f.setSexo_funcionario(sexo.getSelectedItem().toString());
f.setCargo(car.getSelectedItem().toString());
f.setTurno(tur.getSelectedItem().toString());
f.setSalario(Double.parseDouble(sala.getText()));
f.setSenha(sen.getText());
f.setFoto_funcionario(fileData);
dao.salvar(f);
limpar();
readJTable();
O problema que eu to tendo, o fileData não esta sendo reconhecido f.setFoto_funcionario(fileData);
, fazendo com que não salve no banco de dados.
Poderiam me ajudar nisso?