Salvar imagem

Bom dia pessoal!
Gostaria de saber como faço para salvar uma imagem no banco de dados… já criei um código que busca a imagem e coloca ela em um jtextfield, agora preciso um comando para salvar ela. segue meus códigos abaixo.

Buscar imagem e colocar em Jtextfield

try{
JFileChooser busca_foto = new JFileChooser();
busca_foto.setCurrentDirectory(new File(“C:\Users\rafae\Desktop\img”));
busca_foto.setDialogTitle(“Carregar imagem do cliente”);
busca_foto.showOpenDialog(this);
String foto = “”+busca_foto.getSelectedFile().getName();
jTextField1.setText(foto);

// Mostrar a imagem na tela

// lbFoto.setIcon(new ImageIcon(“C:\Users\rafae\Downloads\A Grande Muralha 2017 (1080p) DUBLADO”+tf_foto.getText()));

}catch (Exception e) {
JOptionPane.showMessageDialog(null, “Não foi possivel”);
}

código q utilizo para salvar

try {
    Class.forName(driver);
    Connection con = DriverManager.getConnection(url, user, pass);
    String sql = "insert into Perfil"
            + "(CPERFIL, DPERFIL,LINHA, PROJETO, N_DESENHO, N_PLANO,IMAGEM )"
            + "values(?,?,?,?,?,?,?)";
    PreparedStatement pst = con.prepareStatement(sql);
    pst.setString(1, CadperfilPerfil.getText());
    pst.setString(2, CadperfilDescPerfil.getText());
    pst.setString(3, CadperfilLinha.getSelectedItem().toString());
    pst.setString(4, CadperfilProjeto.getSelectedItem().toString());
    pst.setString(5, CadperfilNDesenho.getText());
    pst.setString(6, CadperfilNPlano.getText());
    pst.setString(7, jTextField1.getText());
    if (CadperfilPerfil.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null, "O campo 'Perfil' é  obrigatório!", "", JOptionPane.WARNING_MESSAGE);
        CadperfilPerfil.requestFocus();
    } else if (CadperfilDescPerfil.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null, "O campo 'Desc. Perfil' é  obrigatório!", "", JOptionPane.WARNING_MESSAGE);
        CadperfilDescPerfil.requestFocus();
    } else if (CadperfilNDesenho.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null, "O campo 'Nº Desenho' é  obrigatório!", "", JOptionPane.WARNING_MESSAGE);
        CadperfilNDesenho.requestFocus();
    } else if (CadperfilNPlano.getText().isEmpty()) {
        JOptionPane.showMessageDialog(null, "O campo 'Nº Plano' é  obrigatório!", "", JOptionPane.WARNING_MESSAGE);
        CadperfilNPlano.requestFocus();
    } else {
        pst.executeUpdate();
        JOptionPane.showConfirmDialog(this, "Deseja Salvar?");
        Cadperfil tela = new Cadperfil();
        PreencherTabela();
        CadperfilPerfil.setText(null);
        CadperfilDescPerfil.setText(null);
        CadperfilNDesenho.setText(null);
        CadperfilNPlano.setText(null);
    }
} catch (Exception e) {
    JOptionPane.showConfirmDialog(this, e.getMessage());
}

}

{

lembrando que o pst 7 é o campo da imagem.

Lembrando que no banco de dados o campo tem que ser do tipo BLOB.

eu criei o metodo abaixo para extrair os bytes de imagem

public byte[] extrairBytes(File arquivo) {
        try {
            if (arquivo == null) {
                return null;
            }
            FileInputStream put = new FileInputStream(arquivo);
            byte[] image = new byte[(int) arquivo.length()];
            put.read(image);
            return image;
        } catch (Exception ex) {
            ex.printStackTrace();
            ContaClaro.logging(this.getClass(), ex.getMessage());
            return null;
        }
    }

Depois é so passar os bytes para sua classe e salvar normalmente