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)