Como salvar a imagem no banco de dados?

onde vc ta usando o WHERE???

editar

PreparedStatement pat = conex.con.prepareStatement("UPDATE  morador SET nome=?, rg=?, cpf=?, nomedoveiculo=?, númerodoapartamento=?, númerodacasa=?, placa=?, imagem=?, WHERE codigo=?");

excluir

PreparedStatement pat = conex.con.prepareStatement("DELETE FROM morador WHERE codigo=?");

buscar

conex.executaSql("SELECT *FROM morador WHERE nome like'%"+mod.getPesquisa()+"%'");

Mas como vc fez um projeto desses se não sabe nem como salva no banco?? Desculpa Fabiana, mas vc realmente precisa pegar as coisas do zero.

Você está me passando uma coisa e está, no fim, fazendo outra… O código que eu te passei nem WHERE tem, é inviavel te ajudar assim. Não pula etapas, isso vai te complicar mais!!!

eu te falei aonde eu estou usando o meu where só isso
mais o código que você falou eu não entendi aonde eu coloco ele

Pq o seu erro está dando no WHERE!!

Mas vc que me passou o código, eu só pedi pra vc consertar um negocio kkkkkk

eu quis dizer esse código:

File image = new File("C:\\imagem.jpg");
FileInputStream inputStream = new FileInputStream(image);
statement.setBinaryStream(x, (InputStream) inputStream, (int)(image.length()));

mas vc fez isso aqui /\ /\ /\ /\

e que eu fui testar esse codigo mais nao gostei

eu tenho essa de conexao com o banco

public Connection conecta(){ // metodo responsavel por realizar conexao com a base dados 
    System.setProperty("jdbc.Drivers", driver);
      try {
          con = DriverManager.getConnection(caminho, usuario, senha);
          //JOptionPane.showMessageDialog(null,"Conexão Efetuada com Sucesso!!");
      } catch (SQLException ex) {
          JOptionPane.showMessageDialog(null,"Erro ao se conectar com o banco de dados:\n"+ex.getMessage());
      }
      return con;      
    
  }
  
  public void executaSql(String sql){
      try {
          stm = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE, rs.CONCUR_READ_ONLY);
          rs = stm.executeQuery(sql);
      } catch (SQLException ex) {
          JOptionPane.showMessageDialog(null,"Erro ExecutaSql:\n"+ex.getMessage());
      }
       
  }
  
  public void desconecta(){
     try{
      con.close();
      //JOptionPane.showMessageDialog(null,"BD Desconectado com sucesso:");
     } catch (SQLException ex){
      JOptionPane.showMessageDialog(null,"Erro ao fechar conexao com BD:\n"+ex.getMessage());
     } 
  }

oxi, é só teste, é só pra ver se funciona.

QUANDO FOR POSTAR CÓDIGO FORMATA ELE, SELECIONA ELE TODO E APERTA EM </>

Não preicisamos do código do banco agora, vamos testar o código que vc mandou ali em cima pra cadastrar.

ok

da o mesmo erro

qual erro? o erro do WHERE?

ele deu aquele erro grande que eu passei pra voce antes

manda o código que vc ta usando…

o código que fala que esta errado é o ultimo pat

public void Salvar(BeansMoradores mod){
    conex.conecta();
    try {
        PreparedStatement pat = conex.con.prepareStatement("INSERT INTO morador(nome, rg, cpf, nomedoveiculo, númerodoapartamento, númerodacasa, placa, imagem) VALUES(?,?,?,?,?,?,?,?)");
        pat.setString(1, mod.getNome());
        pat.setString(2, mod.getRG());
        pat.setString(3, mod.getCPF());
        pat.setString(4, mod.getNomeDoVeiculo());
        pat.setString(5, mod.getNúmeroDoApartamento());
        pat.setString(6, mod.getNúmeroDaCasa());
        pat.setString(7, mod.getPlaca());
        pat.setString(8, mod.getImagem());
        pat.execute();
        
        JOptionPane.showConfirmDialog(null, "Dados Inseridos Com Sucesso!");
        
    } catch (SQLException ex) {
        ex.printStackTrace();
    }
    conex.desconecta();
    
}

O fabianinha, por favor…

é esse código aqui:

public class SaveImageToDatabase {
public static void main(String[] args) throws SQLException {
String caminho = “jdbc:postgresql://localhost:5432/projetocadastro”;
String usuario = “postgres”;
String senha =“fabi2019”;
String sql = “INSERT INTO morador(nome, rg, cpf, nomedoveiculo, númerodoapartamento, númerodacasa, placa, imagem) VALUES(?,?,?,?,?,?,?,?)”;

  try (Connection conn = DriverManager.getConnection(caminho, usuario, senha );){
     File image = new File("images.jpg");
     try (FileInputStream inputStream = new FileInputStream(image);
           PreparedStatement stmt = conn.prepareStatement(sql);) {

        stmt.setString(1, "fabiana");
        stmt.setBinaryStream(2, inputStream, image.length());
        stmt.executeUpdate();
        System.out.println("Image saved successfully.");
     } catch (FileNotFoundException ex) {    
          ex.printStackTrace();
      } catch (IOException ex) {
          ex.printStackTrace();
      }    
    }  
  }

}

ok

eu tentei usar esse codigo pra chama a imagem no banco, mais o codigo da conexao do banco é outro codigo

eu nao vou mais usar esse codigo nao vou usar o meu de conexao pro banco
que esse aqui olha:

public Connection conecta(){ // metodo responsavel por realizar conexao com a base dados 
        System.setProperty("jdbc.Drivers", driver);
          try {
              con = DriverManager.getConnection(caminho, usuario, senha);
              //JOptionPane.showMessageDialog(null,"Conexão Efetuada com Sucesso!!");
          } catch (SQLException ex) {
              JOptionPane.showMessageDialog(null,"Erro ao se conectar com o banco de dados:\n"+ex.getMessage());
          }
          return con;      
        
      }
      
      public void executaSql(String sql){
          try {
              stm = con.createStatement(rs.TYPE_SCROLL_INSENSITIVE, rs.CONCUR_READ_ONLY);
              rs = stm.executeQuery(sql);
          } catch (SQLException ex) {
              JOptionPane.showMessageDialog(null,"Erro ExecutaSql:\n"+ex.getMessage());
          }
           
      }
      
      public void desconecta(){
         try{
          con.close();
          //JOptionPane.showMessageDialog(null,"BD Desconectado com sucesso:");
         } catch (SQLException ex){
          JOptionPane.showMessageDialog(null,"Erro ao fechar conexao com BD:\n"+ex.getMessage());
         } 
      }

Olha, eu vou passar tudo o que vc tem que fazer nessa resposta, ok? Está testado e funcionando, se você não conseguir, infelizmente não tem como eu te ajudar, vc tem que começar a aprender do zero.

Pra testar é só criar duas classe e copiar esses códigos abaixo

SALVAR IMAGEM

public class InserirImagem {

    //var global
    ConectaBanco conecta = new ConectaBanco();

    public void inserirBanco(String nome, byte[] img) {
        conecta.conexao();
        try {
            PreparedStatement pst = conecta.conn.prepareStatement("INSERT INTO morador (nome, imagem) VALUES (?,?)");
            pst.setString(1, nome);
            pst.setBytes(2, img);
            pst.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            conecta.desconecta();
        }
    }

    private byte[] converterImagem(File file) throws FileNotFoundException {
        FileInputStream fis = new FileInputStream(file);
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        try {
            for (int readNum; (readNum = fis.read(buf)) != -1;) {
                bos.write(buf, 0, readNum);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        byte[] bytes = bos.toByteArray();

        return bytes;
    }

    private void enviarDados() {
        try {
            byte[] byteImage = converterImagem(new File("C:\\Imperium\\logonew (1).png"));
            inserirBanco("Abner Rodrigues", byteImage);
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new InserirImagem().enviarDados();
    }
}

MOSTRAR IMAGEM

public class MostrarImagem extends javax.swing.JFrame {

    public MostrarImagem() {
        initComponents();
        procurar_todos();
    }

    private void initComponents() {
        jPanel1 = new javax.swing.JPanel();
        camponome = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();
        campoimagem = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jPanel1.setBackground(new java.awt.Color(255, 255, 255));
        jPanel1.setLayout(null);
        jPanel1.add(camponome);
        camponome.setBounds(40, 320, 460, 20);

        jLabel1.setText("Nome");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(40, 300, 27, 14);
        jPanel1.add(campoimagem);
        campoimagem.setBounds(140, 20, 270, 260);

        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, 540, 360));

        pack();
    }              

    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MostrarImagem.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MostrarImagem().setVisible(true);
            }
        });
    }
           
    private javax.swing.JLabel campoimagem;
    private javax.swing.JTextField camponome;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    // End of variables declaration                   

    ConectaBanco conecta = new ConectaBanco();

    Image image = null;

    public void procurar_todos() {
        conecta.conexao();
        try {
            conecta.executaSQL("SELECT * FROM morador ORDER BY id");
            conecta.rs.last();

            String nome = conecta.rs.getString("nome");
            getImage(conecta.rs.getBytes("imagem"));
            ImageIcon i = new ImageIcon(new ImageIcon("output.jpg").getImage().getScaledInstance(campoimagem.getWidth(), campoimagem.getHeight(), Image.SCALE_SMOOTH));
            
            camponome.setText(nome);
            campoimagem.setIcon(i);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            conecta.desconecta();
        }
    }

    public byte[] getImage(byte[] img) {
        try {
            ByteArrayInputStream bis = new ByteArrayInputStream(img);
            BufferedImage bImage2 = ImageIO.read(bis);
            ImageIO.write(bImage2, "jpg", new File("output.jpg"));
        } catch (IOException ex) {
            Logger.getLogger(MostrarImagem.class.getName()).log(Level.SEVERE, null, ex);
        }
        return img;
    }
}