Estou criando um cadastro de funcionarios e preciso colocar a foto deles qual seria melhor forma de cadastrar essa imagem no banco de dados
Particularmente , eu não gravaria uma imagem no banco, só infla e fica cada vez maior, opinião minha.
ao invés de gravar o arquivo, grava o caminho da imagem , e exibe a imagem uma label quando for necessário, buscando pelo caminho da imagem. mas se quiser realmente gravar a imagem no banco.
pode usar o typo BLOB. um gosso exemplo:
String INS = "insert into MyPictures(id, name, photo) values (?, ?, ?)";
File file = new File("myPhoto.png");
fis = new FileInputStream(file);
ps = conn.prepareStatement(INSERT_PICTURE);'
ps.setString(1, "001");
ps.setString(2, "name");
ps.setBinaryStream(3, fis, (int) file.length());
ps.executeUpdate();
conn.commit();
Nunca usei o BANCO para armazenar imagens, mas tenho certeza que vai inflar, ainda mais tratando-se de cadastro de funcionários, o MARCELO está certo.
Cria uma pasta e ALOCA as imagens dos funcionários nesta pasta, daí é só puxar a imagem na LABEL como ele disse, só para visualizar no momento em que puxar o CADASTRO do funcionário.
Vai lhe poupar espaço no banco e acredito que vai manter ele LEVE e RÁPIDO no SELE, INSERT e UPDATE
Em vez de usar um JLabel para exibir a imagem. Recomento usar o JImagePanel, do projeto towel.
Você pode usar qualquer componente que possa “mostrar” uma imagem que esteja gravada em um determinado diretório, e o endereço desta imagem deve estar gravado no BD… Lembre-se que a partir dai você pode até trocar a imagem no diretório, mantendo o mesmo nome, e a alteração vai refletir no seu programa. Fica bem dinâmico… Arquivos de configurações também pode ser utilizados… exige menos que BDs… vai depender do grau de segurança que vc deseja…
Uma ótima ideia, gostei dessa!!!