Tentando gravar imagens no banco de dados mysql

Ola pessoal
Estou tentando gravar fotos no banco de dados mysql, usando o java com netbeans.
Já peguei um monte de modelos na internet e nenhum funciona…
Vou colocar abaixo, o meu código completo, o erro completo e o meu banco de dados
Sera que alguém consegue me ajudar? ja estou enrolado com isso ha uns 30 dias…

Obrigado

O código :
package br.com.mmadmin.telas;

import java.sql.*;
import br.com.mmadmin.dal.ModuloConexao;
import java.awt.HeadlessException;
import java.awt.Image;
import java.text.DateFormat;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.filechooser.FileNameExtensionFilter;


public class CadastroClientes extends javax.swing.JInternalFrame {

    Connection conexao = null;
    PreparedStatement pst = null;
    ResultSet rs = null;

    public CadastroClientes() {
        initComponents();
        conexao = ModuloConexao.conector();
        java.util.Date data = new java.util.Date();
        DateFormat formatador = DateFormat.getDateInstance(DateFormat.MEDIUM);
        mascdatacadastro.setText(formatador.format(data));
        populacbuf();
        populaoperadoras();
    }

    public void populaoperadoras() {
        String sql = "Select * from tboperadoras";
        try {
            pst = conexao.prepareStatement(sql);
            rs = pst.executeQuery();

            while (rs.next()) {
                jcboperadora1.addItem(rs.getString("nome"));
                jcboperadora2.addItem(rs.getString("nome"));
            }

        } catch (Exception e) {
        }
    }

    public void populacbuf() {
        String sql = "Select * from tbestado";
        try {
            pst = conexao.prepareStatement(sql);
            rs = pst.executeQuery();

            while (rs.next()) {
                jcbUF.addItem(rs.getString("nome"));
            }

        } catch (Exception e) {
        }
    }

    public void populacidade() {
        int idc = 0;
        switch (jcbUF.getSelectedItem().toString()) {
            case "Acre":
                idc = 1;
                break;
            case "Alagoas":
                idc = 2;
                break;
            case "Amazonas":
                idc = 3;
                break;
            case "Amapá":
                idc = 4;
                break;
            case "Bahia":
                idc = 5;
                break;
            case "Ceará":
                idc = 6;
                break;
            case "Distrito Federal":
                idc = 7;
                break;
            case "Espírito Santo":
                idc = 8;
                break;
            case "Goiás":
                idc = 9;
                break;
            case "Maranhão":
                idc = 10;
                break;
            case "Minas Gerais":
                idc = 11;
                break;
            case "Mato Grosso do Sul":
                idc = 12;
                break;
            case "Mato Grosso":
                idc = 13;
                break;
            case "Pará":
                idc = 14;
                break;
            case "Paraíba":
                idc = 15;
                break;
            case "Pernambuco":
                idc = 16;
                break;
            case "Piauí":
                idc = 17;
                break;
            case "Paraná":
                idc = 18;
                break;
            case "Rio de Janeiro":
                idc = 19;
                break;
            case "Rio Grande do Norte":
                idc = 20;
                break;
            case "Rondônia":
                idc = 21;
                break;
            case "Roraima":
                idc = 22;
                break;
            case "Rio Grande do Sul":
                idc = 23;
                break;
            case "Santa Catarina":
                idc = 24;
                break;
            case "Sergipe":
                idc = 25;
                break;
            case "São Paulo":
                idc = 26;
                break;
            case "Tocantins":
                idc = 27;
                break;
            default:
        }
        String stridc = "" + idc;
        String sql = "Select * from tbcidade where estado=?";
        try {
            pst = conexao.prepareStatement(sql);
            pst.setString(1, stridc);
            rs = pst.executeQuery();

            while (rs.next()) {
                jcbCidade.addItem(rs.getString("nome"));
            }

        } catch (Exception e) {
        }
    }

    private void adicionar() throws FileNotFoundException, IOException { //
        String sql = "insert into tbpaciente (foto, datacadastro,nome,status,tipo,corpele,gruposangue,estadocivil,"
                + "nascimento,responsavel,sexo,cpf,rg,conjuge,rua,bairro,uf,cidade,cep,complemento,telefone1,recados1,"
                + "telefone2,recados2,celular1,operadora1,celular2,operadora2,recados3,convenio,conveniomatricula,"
                + "conveniovalidade,convenioplano,conveniosubplano,empresa,conveniotitular,convenioobs,cartaosus,ficha,"
                + "miscobs,conheceuclinica,doasangue,doaorgaos,whatsapp1,whatsapp2)"
                + "values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        try {
            //InputStream foto = new FileInputStream(new File(txtfotocaminho.getText()));
            ///pst.setBlob(1, foto);
            pst = conexao.prepareStatement(sql);
            File nomefoto = new File(txtfoto.getText());
            FileInputStream arquivofoto = new FileInputStream(nomefoto);
            pst.setBinaryStream(1, arquivofoto);          
            pst.setString(2, mascdatacadastro.getText());
            pst.setString(3, txtnome.getText());
            pst.setString(4, jcbstatus.getSelectedItem().toString());
            pst.setString(5, jcbtipo.getSelectedItem().toString());
            pst.setString(6, jcbcorpele.getSelectedItem().toString());
            pst.setString(7, jcbgruposanguineo.getSelectedItem().toString());
            pst.setString(8, jcbestadocivil.getSelectedItem().toString());
            pst.setString(9, mascnascimento.getText());
            pst.setString(10, txtresponsavel.getText());
            pst.setString(11, jcbsexo.getSelectedItem().toString());
            pst.setString(12, masccpf.getText());
            pst.setString(13, mascrg.getText());
            pst.setString(14, txtconjuge.getText());
            pst.setString(15, txtrua.getText());
            pst.setString(16, txtbairro.getText());
            pst.setString(17, jcbUF.getSelectedItem().toString());
            pst.setString(18, jcbCidade.getSelectedItem().toString());
            pst.setString(19, masccep.getText());
            pst.setString(20, txtcomplemento.getText());
            pst.setString(21, masctel1.getText());
            pst.setString(22, txtrecadot1.getText());
            pst.setString(23, masctel2.getText());
            pst.setString(24, txtrecadot2.getText());
            pst.setString(25, masccel1.getText());
            pst.setString(26, jcboperadora1.getSelectedItem().toString());
            pst.setString(27, masccel2.getText());
            pst.setString(28, jcboperadora2.getSelectedItem().toString());
            pst.setString(29, txtrecadoc2.getText());
            pst.setString(30, txtconvenio.getText());
            pst.setString(31, txtconvmatricula.getText());
            pst.setString(32, mascconvdata.getText());
            pst.setString(33, txtconvplano.getText());
            pst.setString(34, txtconvsubplano.getText());
            pst.setString(35, txtconvempresa.getText());
            pst.setString(36, txtconvtitular.getText());
            pst.setString(37, txtconvobs.getText());
            pst.setString(38, mascartaosus.getText());
            pst.setString(39, txtficha.getText());
            pst.setString(40, txtobservacao.getText());
            pst.setString(41, jcbconheceu.getSelectedItem().toString());
            pst.setString(42, jckbsangue.getText());
            pst.setString(43, jckborgaos.getText());
            pst.setString(44, jckwhatsapp1.getText());
            pst.setString(45, jckwhatsapp2.getText());
            // inserindo dados
            int adicionado = pst.executeUpdate();
            if (adicionado > 0) {
                JOptionPane.showMessageDialog(null, "Parceiro adicionado com sucesso");
            }
        } catch (SQLException | HeadlessException e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        btnopen = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel4 = new javax.swing.JPanel();
        jLabel8 = new javax.swing.JLabel();
        jcbsexo = new javax.swing.JComboBox<>();
        jLabel9 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jLabel12 = new javax.swing.JLabel();
        jTextField7 = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        txtresponsavel = new javax.swing.JTextField();
        jButton3 = new javax.swing.JButton();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        txtconjuge = new javax.swing.JTextField();
        jButton7 = new javax.swing.JButton();
        jLabel17 = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        txtrua = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        txtbairro = new javax.swing.JTextField();
        jLabel21 = new javax.swing.JLabel();
        jcbUF = new javax.swing.JComboBox<>();
        jLabel22 = new javax.swing.JLabel();
        jcbCidade = new javax.swing.JComboBox<>();
        jLabel23 = new javax.swing.JLabel();
        jLabel24 = new javax.swing.JLabel();
        txtcomplemento = new javax.swing.JTextField();
        jLabel25 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        jLabel27 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        txtrecadot1 = new javax.swing.JTextField();
        txtrecadot2 = new javax.swing.JTextField();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        txtrecadoc2 = new javax.swing.JTextField();
        jLabel32 = new javax.swing.JLabel();
        jcboperadora2 = new javax.swing.JComboBox<>();
        jcboperadora1 = new javax.swing.JComboBox<>();
        jLabel33 = new javax.swing.JLabel();
        mascnascimento = new javax.swing.JFormattedTextField();
        masccpf = new javax.swing.JFormattedTextField();
        mascrg = new javax.swing.JFormattedTextField();
        masccep = new javax.swing.JFormattedTextField();
        masctel1 = new javax.swing.JFormattedTextField();
        masctel2 = new javax.swing.JFormattedTextField();
        masccel2 = new javax.swing.JFormattedTextField();
        masccel1 = new javax.swing.JFormattedTextField();
        masconjtel = new javax.swing.JFormattedTextField();
        mascrespte = new javax.swing.JFormattedTextField();
        jckwhatsapp1 = new javax.swing.JCheckBox();
        jckwhatsapp2 = new javax.swing.JCheckBox();
        jPanel1 = new javax.swing.JPanel();
        jLabel34 = new javax.swing.JLabel();
        txtconvenio = new javax.swing.JTextField();
        jButton8 = new javax.swing.JButton();
        jLabel35 = new javax.swing.JLabel();
        txtconvmatricula = new javax.swing.JTextField();
        jLabel36 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        txtconvplano = new javax.swing.JTextField();
        jLabel38 = new javax.swing.JLabel();
        txtconvsubplano = new javax.swing.JTextField();
        jLabel39 = new javax.swing.JLabel();
        txtconvempresa = new javax.swing.JTextField();
        jLabel40 = new javax.swing.JLabel();
        txtconvtitular = new javax.swing.JTextField();
        jLabel41 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        txtconvobs = new javax.swing.JTextArea();
        jLabel42 = new javax.swing.JLabel();
        mascconvdata = new javax.swing.JFormattedTextField();
        mascartaosus = new javax.swing.JFormattedTextField();
        jPanel2 = new javax.swing.JPanel();
        jLabel43 = new javax.swing.JLabel();
        jLabel44 = new javax.swing.JLabel();
        txtficha = new javax.swing.JTextField();
        jLabel45 = new javax.swing.JLabel();
        jcbconheceu = new javax.swing.JComboBox<>();
        jLabel46 = new javax.swing.JLabel();
        jckbsangue = new javax.swing.JCheckBox();
        jckborgaos = new javax.swing.JCheckBox();
        jScrollPane4 = new javax.swing.JScrollPane();
        txtobservacao = new javax.swing.JTextArea();
        jPanel5 = new javax.swing.JPanel();
        jLabel47 = new javax.swing.JLabel();
        jLabel48 = new javax.swing.JLabel();
        jLabel49 = new javax.swing.JLabel();
        jLabel50 = new javax.swing.JLabel();
        jLabel51 = new javax.swing.JLabel();
        jButton9 = new javax.swing.JButton();
        imcmascdata = new javax.swing.JFormattedTextField();
        imcmascaltura = new javax.swing.JFormattedTextField();
        imcmasccintura = new javax.swing.JFormattedTextField();
        imcmascpeso = new javax.swing.JFormattedTextField();
        jFormattedTextField28 = new javax.swing.JFormattedTextField();
        jTextField4 = new javax.swing.JTextField();
        jPanel6 = new javax.swing.JPanel();
        jLabel52 = new javax.swing.JLabel();
        jLabel53 = new javax.swing.JLabel();
        jLabel54 = new javax.swing.JLabel();
        jLabel56 = new javax.swing.JLabel();
        jButton10 = new javax.swing.JButton();
        glicosejcbmedicao = new javax.swing.JComboBox<>();
        glicosemascdata = new javax.swing.JFormattedTextField();
        glicosetxtglicose = new javax.swing.JFormattedTextField();
        glicosemaschora = new javax.swing.JFormattedTextField();
        jPanel7 = new javax.swing.JPanel();
        jPanel8 = new javax.swing.JPanel();
        jLabel57 = new javax.swing.JLabel();
        jLabel58 = new javax.swing.JLabel();
        jLabel59 = new javax.swing.JLabel();
        jButton11 = new javax.swing.JButton();
        pressaomascdata = new javax.swing.JFormattedTextField();
        pressaotxtn1 = new javax.swing.JFormattedTextField();
        pressaotxtn2 = new javax.swing.JFormattedTextField();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        btnsave = new javax.swing.JButton();
        btnquit = new javax.swing.JButton();
        jcbstatus = new javax.swing.JComboBox<>();
        jcbtipo = new javax.swing.JComboBox<>();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jcbcorpele = new javax.swing.JComboBox<>();
        jcpgruposangue = new javax.swing.JLabel();
        jcbgruposanguineo = new javax.swing.JComboBox<>();
        txtnome = new javax.swing.JTextField();
        jLabel2 = new javax.swing.JLabel();
        jButton6 = new javax.swing.JButton();
        jcbestadocivil = new javax.swing.JComboBox<>();
        label = new javax.swing.JLabel();
        mascdatacadastro = new javax.swing.JFormattedTextField();
        txtfoto = new javax.swing.JLabel();
        txtfotocaminho = new javax.swing.JLabel();

}

O banco de dados:

Field	Type	Null	Key	Default	Extra
id	int(11)	NO	PRI	NULL	auto_increment
foto	longblob	YES		NULL	
datacadastro	varchar(12)	YES		NULL	
nome	varchar(80)	YES		NULL	
status	varchar(30)	YES		NULL	
tipo	varchar(30)	YES		NULL	
corpele	varchar(30)	YES		NULL	
gruposangue	varchar(45)	YES		NULL	
estadocivil	varchar(45)	YES		NULL	
nascimento	varchar(12)	YES		NULL	
responsavel	varchar(45)	YES		NULL	
sexo	varchar(20)	YES		NULL	
cpf	varchar(20)	YES		NULL	
rg	varchar(20)	YES		NULL	
conjuge	varchar(45)	YES		NULL	
rua	varchar(100)	YES		NULL	
bairro	varchar(100)	YES		NULL	
uf	varchar(100)	YES		NULL	
cidade	varchar(120)	YES		NULL	
cep	varchar(12)	YES		NULL	
complemento	varchar(100)	YES		NULL	
telefone1	varchar(15)	YES		NULL	
recados1	varchar(50)	YES		NULL	
telefone2	varchar(15)	YES		NULL	
recados2	varchar(50)	YES		NULL	
celular1	varchar(20)	YES		NULL	
operadora1	varchar(20)	YES		NULL	
celular2	varchar(20)	YES		NULL	
operadora2	varchar(20)	YES		NULL	
recados3	varchar(50)	YES		NULL	
convenio	varchar(45)	YES		NULL	
conveniomatricula	varchar(45)	YES		NULL	
conveniovalidade	varchar(45)	YES		NULL	
convenioplano	varchar(45)	YES		NULL	
conveniosubplano	varchar(45)	YES		NULL	
empresa	varchar(45)	YES		NULL	
conveniotitular	varchar(45)	YES		NULL	
convenioobs	varchar(4000)	YES		NULL	
cartaosus	varchar(45)	YES		NULL	
ficha	varchar(45)	YES		NULL	
miscobs	varchar(4000)	YES		NULL	
conheceuclinica	varchar(45)	YES		NULL	
doasangue	varchar(10)	YES		NULL	
doaorgaos	varchar(10)	YES		NULL	
whatsapp1	varchar(10)	YES		NULL	
whatsapp2	varchar(10)	YES		NULL	

O erro:

run:
mai 02, 2017 1:38:24 PM br.com.mmadmin.telas.CadastroClientes btnsaveActionPerformed
GRAVE: null
java.io.FileNotFoundException:
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at br.com.mmadmin.telas.CadastroClientes.adicionar(CadastroClientes.java:189)
at br.com.mmadmin.telas.CadastroClientes.btnsaveActionPerformed(CadastroClientes.java:1499)
at br.com.mmadmin.telas.CadastroClientes.access$600(CadastroClientes.java:31)
at br.com.mmadmin.telas.CadastroClientes$7.actionPerformed(CadastroClientes.java:1283)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

CONSTRUÍDO COM SUCESSO (tempo total: 33 segundos)

Olá,
seu problema não está exatamente em gravar no banco. O erro está ocorrendo na linha 189 no FileInputStream, onde ele diz que o arquivo não foi encontrado (FileNotFoundException).
Antes desta linha printe o caminho do arquivo (nomefoto) pra ver se existe.
System.out.println(nomefoto.getAbsolutePath());
Também pode aliar o nomefoto.exists() para ver se o arquivo de fato existe.

1 curtida

Obrigado pela dica
Realmente estava errado o caminho, eu corrigi, mas ainda tenho erro:

run:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at br.com.mmadmin.telas.CadastroClientes.adicionar(CadastroClientes.java:209)
at br.com.mmadmin.telas.CadastroClientes.btnsaveActionPerformed(CadastroClientes.java:1512)
at br.com.mmadmin.telas.CadastroClientes.access$600(CadastroClientes.java:31)
at br.com.mmadmin.telas.CadastroClientes$7.actionPerformed(CadastroClientes.java:1286)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6535)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6300)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4891)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2750)
at java.awt.Component.dispatchEvent(Component.java:4713)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
CONSTRUÍDO COM SUCESSO (tempo total: 25 segundos)

eu pego a imagem com esta rotina:

 private void btnopenActionPerformed(java.awt.event.ActionEvent evt) {                                        
        JFileChooser foto = new JFileChooser();
        FileNameExtensionFilter filtro = new FileNameExtensionFilter("Formato jpeg (*.jpeg;*.jpg)", "jpg", "jpeg");
        foto.addChoosableFileFilter(filtro);
        foto.setFileFilter(filtro);
        foto.setDialogTitle("Selecione a foto");
        int ventana = foto.showOpenDialog(null);
        if (ventana == JFileChooser.APPROVE_OPTION) {
            File file = foto.getSelectedFile();
            txtfotocaminho.setText(String.valueOf(file)); // caminho da foto
            Image fotog = getToolkit().getImage(txtfotocaminho.getText());
            fotog = fotog.getScaledInstance(200, 250, Image.SCALE_DEFAULT);
            txtfoto.setIcon(new ImageIcon(fotog));
        }
    }  

e tento salvar com esta:

File nomefoto = new File(txtfotocaminho.getText());
FileInputStream arquivofoto = new FileInputStream(nomefoto);
       
String sql = "insert into tbpaciente (foto, datacadastro,nome,status,tipo,corpele,gruposangue,estadocivil,nascimento,responsavel,sexo,cpf,rg,conjuge,rua,bairro,uf,cidade,cep,complemento,telefone1,recados1,telefone2,recados2,celular1,operadora1,celular2,operadora2,recados3,convenio,conveniomatricula,conveniovalidade,convenioplano,conveniosubplano,empresa,conveniotitular,convenioobs,cartaosus,ficha,miscobs,conheceuclinica,doasangue,doaorgaos,whatsapp1,whatsapp2) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
try {
    pst = conexao.prepareStatement(sql);    
    pst.setBinaryStream(1, arquivofoto);  

como consertar isto?

Revisa esta linha 209, o objeto está nulo.

1 curtida